[Geoserver-devel] [Geoserver-users] Compiling geoserver 1.7.x from svn

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

The "-P release" part actives the build of the release directory, which contains all the jetty jars. The exception tells me that the jetty jars are missing.

Also, just to ensure, you are running the startup.sh or startup.bat file?

-Justin

Eric W Anderson wrote:

Hi again,

Thanks for all your help -- it's getting closer to working. When I unzip the
geoserver-1.7.3-SNAPSHOT-bin.zip "release," I get a directory tree that looks
very much like the pre-compiled version I dowloaded. When I try to run it,
though, I get an error which I did not get with the official release:

java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:166)
  at org.mortbay.start.Main.start(Main.java:497)
  at org.mortbay.start.Main.main(Main.java:115)

Any thoughts? I don't see any .java, .class, or .jar files which are obviously
relevent in either version.

Thank you so much for all your installation & debugging help!

-Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

Glad it is working. So basically what you have to do is build the release artifacts. You will get the binary and war artifact, one of which you can deploy to your server.

The entire release process is documented in detail here:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html

But you probably will only care about this section:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html#build-release-artifacts

To sum up:

From the root:

1) mvn -P release clean install
2) mvn assembly:attached

If you want to include a custom data directory you need to specify the configId and configDirectory flags in step 1. Example:

mvn -DconfigId=myDataDirectory
   -DconfigDirectory=/location/where/i/keep/data/directories
   -P release clean install

Hope that helps.

-Justin

Eric W Anderson wrote:

Hi Justin,

Thanks for your help! It seems to be building perfectly now, but that brings
me to another maven and/or web services newbie question: How do I move
geoserver from being installed in my local maven repository (looks like a
directory tree under ~/.m2/repository/) to being installed on my web server?
Is there a tar/jar/war/zip somewhere that I can copy to the appropriate machine
and directory?

Thanks again,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

You actually have to do an "install" rather than "compile". The reason being that there are modules that depend on other modules for test code, in addition to just regular code. "compile" just complies the regular source code (non-tests). Whereas install will compile both regular code and test code, and install it in your local maven repository.

The command I usually build with is "mvn clean install".

Let us know if that does not work for you.

-Justin

Eric W Anderson wrote:

Hi all,

I'm trying to build geoserver from source so that I'll have a starting point
for writing a plugin. Let me say from the outset that this is unfamiliar
territory: I've never used maven, jetty, or any of the associated paraphernalia
before.

What I'm doing seems like it should be simple, but things keep going wrong. I
checked out the source with:

svn co http://svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x

I'm trying to compile with:

cd geoserver-1.7.x/src
mvn compile

I end up with the following error:

  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to resolve artifact.
    Missing:
  ----------
  1) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
      Try downloading the file manually from the project website.
      Then, install it using the command: mvn install:install-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file
      Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
      Path to dependency: 1) org.geoserver:wms:jar:1.7.3-SNAPSHOT
      2) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
    ----------
  1 required artifact is missing.
    for artifact: org.geoserver:wms:jar:1.7.3-SNAPSHOT

What am I doing wrong? I can see from the hudson server that this code branch
passes automated build tests. I've tried manually finding the missing jar file
on-line and installing it as described in the error message, but then I run
into another missing artifact and another, ad infinitum. What am I missing?

Any help would be greatly appreciated!

-Eric

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Justin Deoliveira ha scritto:

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

Once upon a time we needed to cd into "release", build it, and then
cd .. and build the whole thing. This is no more the case?

Cheers
Andrea

That is what -P release is for.

-Justin

Andrea Aime wrote:

Justin Deoliveira ha scritto:

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

Once upon a time we needed to cd into "release", build it, and then
cd .. and build the whole thing. This is no more the case?

Cheers
Andrea

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

-P release also sets the configuration directory to be the release specific one we always ship.

Justin Deoliveira wrote:

That is what -P release is for.

-Justin

Andrea Aime wrote:

Justin Deoliveira ha scritto:

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

Once upon a time we needed to cd into "release", build it, and then
cd .. and build the whole thing. This is no more the case?

Cheers
Andrea

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

Hi Justin,

OK, that looks like a success. I thought I built it with the "-P release" flag
before, but evidently not. Thanks for all of your help.

The whole process has been decidedly unintuitive, at least for someone with my
background. This list has been extraordinarily helpful, but I burned a whole
lot of time trying to figure everything out before joining the mailing list.

Is there anywhere I can contribute to the web documentation to make this
process easier for the next guy?

Thanks for everything,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

(If you could keep responses on the public list that would be
appreciated, thanks).

What it looks like to me is that the release directory was not built
properly. Are you sure you built with the "-P release" switch? Again the
commands should be:

mvn -P release clean install
mvn assembly:attached

The "-P release" part actives the build of the release directory, which
contains all the jetty jars. The exception tells me that the jetty jars
are missing.

Also, just to ensure, you are running the startup.sh or startup.bat file?

-Justin

Eric W Anderson wrote:
> Hi again,
>
> Thanks for all your help -- it's getting closer to working. When I unzip the
> geoserver-1.7.3-SNAPSHOT-bin.zip "release," I get a directory tree that looks
> very much like the pre-compiled version I dowloaded. When I try to run it,
> though, I get an error which I did not get with the official release:
>
> java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at org.mortbay.start.Main.invokeMain(Main.java:166)
> at org.mortbay.start.Main.start(Main.java:497)
> at org.mortbay.start.Main.main(Main.java:115)
>
> Any thoughts? I don't see any .java, .class, or .jar files which are obviously
> relevent in either version.
>
> Thank you so much for all your installation & debugging help!
>
> -Eric
>
>
> Thus spake Justin Deoliveira (jdeolive@anonymised.com):
>
>> Hi Eric,
>>
>> Glad it is working. So basically what you have to do is build the
>> release artifacts. You will get the binary and war artifact, one of
>> which you can deploy to your server.
>>
>> The entire release process is documented in detail here:
>>
>> http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html
>>
>> But you probably will only care about this section:
>>
>> http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html#build-release-artifacts
>>
>> To sum up:
>>
>> From the root:
>>
>> 1) mvn -P release clean install
>> 2) mvn assembly:attached
>>
>> If you want to include a custom data directory you need to specify the
>> configId and configDirectory flags in step 1. Example:
>>
>> mvn -DconfigId=myDataDirectory
>> -DconfigDirectory=/location/where/i/keep/data/directories
>> -P release clean install
>>
>> Hope that helps.
>>
>> -Justin
>>
>>
>> Eric W Anderson wrote:
>>> Hi Justin,
>>>
>>> Thanks for your help! It seems to be building perfectly now, but that brings
>>> me to another maven and/or web services newbie question: How do I move
>>> geoserver from being installed in my local maven repository (looks like a
>>> directory tree under ~/.m2/repository/) to being installed on my web server?
>>> Is there a tar/jar/war/zip somewhere that I can copy to the appropriate machine
>>> and directory?
>>>
>>> Thanks again,
>>> Eric
>>>
>>> Thus spake Justin Deoliveira (jdeolive@anonymised.com):
>>>
>>>> Hi Eric,
>>>>
>>>> You actually have to do an "install" rather than "compile". The reason
>>>> being that there are modules that depend on other modules for test code,
>>>> in addition to just regular code. "compile" just complies the regular
>>>> source code (non-tests). Whereas install will compile both regular code
>>>> and test code, and install it in your local maven repository.
>>>>
>>>> The command I usually build with is "mvn clean install".
>>>>
>>>> Let us know if that does not work for you.
>>>>
>>>> -Justin
>>>>
>>>> Eric W Anderson wrote:
>>>>> Hi all,
>>>>>
>>>>> I'm trying to build geoserver from source so that I'll have a starting point
>>>>> for writing a plugin. Let me say from the outset that this is unfamiliar
>>>>> territory: I've never used maven, jetty, or any of the associated paraphernalia
>>>>> before.
>>>>>
>>>>> What I'm doing seems like it should be simple, but things keep going wrong. I
>>>>> checked out the source with:
>>>>>
>>>>> svn co http://svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x
>>>>>
>>>>> I'm trying to compile with:
>>>>>
>>>>> cd geoserver-1.7.x/src
>>>>> mvn compile
>>>>>
>>>>> I end up with the following error:
>>>>>
>>>>> [INFO] ------------------------------------------------------------------------
>>>>> [ERROR] BUILD ERROR
>>>>> [INFO] ------------------------------------------------------------------------
>>>>> [INFO] Failed to resolve artifact.
>>>>> Missing:
>>>>> ----------
>>>>> 1) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
>>>>> Try downloading the file manually from the project website.
>>>>> Then, install it using the command: mvn
>>>>> install:install-file -DgroupId=org.geoserver -DartifactId=ows
>>>>> -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar
>>>>> -Dfile=/path/to/file
>>>>> Alternatively, if you host your own repository you can deploy the
>>>>> file there: mvn deploy:deploy-file -DgroupId=org.geoserver
>>>>> -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests
>>>>> -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
>>>>> Path to dependency: 1) org.geoserver:wms:jar:1.7.3-SNAPSHOT
>>>>> 2) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
>>>>> ----------
>>>>> 1 required artifact is missing.
>>>>> for artifact: org.geoserver:wms:jar:1.7.3-SNAPSHOT
>>>>>
>>>>> What am I doing wrong? I can see from the hudson server that this code branch
>>>>> passes automated build tests. I've tried manually finding the missing jar file
>>>>> on-line and installing it as described in the error message, but then I run
>>>>> into another missing artifact and another, ad infinitum. What am I
>>>>> missing?
>>>>>
>>>>> Any help would be greatly appreciated!
>>>>>
>>>>> -Eric
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> This SF.net email is sponsored by:
>>>>> High Quality Requirements in a Collaborative Environment.
>>>>> Download a free trial of Rational Requirements Composer Now!
>>>>> http://p.sf.net/sfu/www-ibm-com
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> Geoserver-users mailing list
>>>>> Geoserver-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>>> --
>>>> Justin Deoliveira
>>>> OpenGeo - http://opengeo.org
>>>> Enterprise support for open source geospatial.
>>
>> --
>> Justin Deoliveira
>> OpenGeo - http://opengeo.org
>> Enterprise support for open source geospatial.
>>
>> ------------------------------------------------------------------------------
>> This SF.net email is sponsored by:
>> High Quality Requirements in a Collaborative Environment.
>> Download a free trial of Rational Requirements Composer Now!
>> http://p.sf.net/sfu/www-ibm-com
>> _______________________________________________
>> Geoserver-users mailing list
>> Geoserver-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Eric W. Anderson University of Colorado
eric.anderson@anonymised.com Dept. of Computer Science
phone: +1-720-984-8864 Systems Research Lab - ECCR 1B54

                         PGP key fingerprints:
       personal: 1BD4 CFCE 8B59 8D6E EA3E EBD5 4DC9 3E61 656C 462B
       academic: D3C5 D6FF EDED 9F1F C36D 53A3 74B7 53A6 3C74 5F12

Hi Eric,

Glad you got it to work. And I apologize for our lack of good documentation for developers. It is something we are working on, slowly but surely.

Anything you wanted to contribute about your findings woudl be great. I would suggest signing up for our wiki:

http://geoserver.org/signup.action

And adding a new page detailing your experiences.

-Justin

Eric W Anderson wrote:

Hi Justin,

OK, that looks like a success. I thought I built it with the "-P release" flag
before, but evidently not. Thanks for all of your help.

The whole process has been decidedly unintuitive, at least for someone with my
background. This list has been extraordinarily helpful, but I burned a whole
lot of time trying to figure everything out before joining the mailing list.

Is there anywhere I can contribute to the web documentation to make this
process easier for the next guy?

Thanks for everything,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

The "-P release" part actives the build of the release directory, which contains all the jetty jars. The exception tells me that the jetty jars are missing.

Also, just to ensure, you are running the startup.sh or startup.bat file?

-Justin

Eric W Anderson wrote:

Hi again,

Thanks for all your help -- it's getting closer to working. When I unzip the
geoserver-1.7.3-SNAPSHOT-bin.zip "release," I get a directory tree that looks
very much like the pre-compiled version I dowloaded. When I try to run it,
though, I get an error which I did not get with the official release:

java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:166)
  at org.mortbay.start.Main.start(Main.java:497)
  at org.mortbay.start.Main.main(Main.java:115)

Any thoughts? I don't see any .java, .class, or .jar files which are obviously
relevent in either version.

Thank you so much for all your installation & debugging help!

-Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

Glad it is working. So basically what you have to do is build the release artifacts. You will get the binary and war artifact, one of which you can deploy to your server.

The entire release process is documented in detail here:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html

But you probably will only care about this section:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html#build-release-artifacts

To sum up:

From the root:

1) mvn -P release clean install
2) mvn assembly:attached

If you want to include a custom data directory you need to specify the configId and configDirectory flags in step 1. Example:

mvn -DconfigId=myDataDirectory
   -DconfigDirectory=/location/where/i/keep/data/directories
   -P release clean install

Hope that helps.

-Justin

Eric W Anderson wrote:

Hi Justin,

Thanks for your help! It seems to be building perfectly now, but that brings
me to another maven and/or web services newbie question: How do I move
geoserver from being installed in my local maven repository (looks like a
directory tree under ~/.m2/repository/) to being installed on my web server?
Is there a tar/jar/war/zip somewhere that I can copy to the appropriate machine
and directory?

Thanks again,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

You actually have to do an "install" rather than "compile". The reason being that there are modules that depend on other modules for test code, in addition to just regular code. "compile" just complies the regular source code (non-tests). Whereas install will compile both regular code and test code, and install it in your local maven repository.

The command I usually build with is "mvn clean install".

Let us know if that does not work for you.

-Justin

Eric W Anderson wrote:

Hi all,

I'm trying to build geoserver from source so that I'll have a starting point
for writing a plugin. Let me say from the outset that this is unfamiliar
territory: I've never used maven, jetty, or any of the associated paraphernalia
before.

What I'm doing seems like it should be simple, but things keep going wrong. I
checked out the source with:

svn co http://svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x

I'm trying to compile with:

cd geoserver-1.7.x/src
mvn compile

I end up with the following error:

  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to resolve artifact.
    Missing:
  ----------
  1) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
      Try downloading the file manually from the project website.
      Then, install it using the command: mvn install:install-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file
      Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
      Path to dependency: 1) org.geoserver:wms:jar:1.7.3-SNAPSHOT
      2) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
    ----------
  1 required artifact is missing.
    for artifact: org.geoserver:wms:jar:1.7.3-SNAPSHOT

What am I doing wrong? I can see from the hudson server that this code branch
passes automated build tests. I've tried manually finding the missing jar file
on-line and installing it as described in the error message, but then I run
into another missing artifact and another, ad infinitum. What am I missing?

Any help would be greatly appreciated!

-Eric

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

I wrote up a little mini-howto at
http://geoserver.org/display/GEOSDOC/Building+GeoServer+from+source+code . I
don't think it's quite ready for prime time, but it is ready for feedback. Hit
me with comments (or just edit the page)!

-Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

Glad you got it to work. And I apologize for our lack of good
documentation for developers. It is something we are working on, slowly
but surely.

Anything you wanted to contribute about your findings woudl be great. I
would suggest signing up for our wiki:

http://geoserver.org/signup.action

And adding a new page detailing your experiences.

-Justin

Eric W Anderson wrote:
> Hi Justin,
>
> OK, that looks like a success. I thought I built it with the "-P release" flag
> before, but evidently not. Thanks for all of your help.
>
> The whole process has been decidedly unintuitive, at least for someone with my
> background. This list has been extraordinarily helpful, but I burned a whole
> lot of time trying to figure everything out before joining the mailing list.
>
> Is there anywhere I can contribute to the web documentation to make this
> process easier for the next guy?
>
> Thanks for everything,
> Eric
>
> Thus spake Justin Deoliveira (jdeolive@anonymised.com):
>
>> Hi Eric,
>>
>> (If you could keep responses on the public list that would be
>> appreciated, thanks).
>>
>> What it looks like to me is that the release directory was not built
>> properly. Are you sure you built with the "-P release" switch? Again the
>> commands should be:
>>
>> mvn -P release clean install
>> mvn assembly:attached
>>
>> The "-P release" part actives the build of the release directory, which
>> contains all the jetty jars. The exception tells me that the jetty jars
>> are missing.
>>
>> Also, just to ensure, you are running the startup.sh or startup.bat file?
>>
>> -Justin
>>
>> Eric W Anderson wrote:
>>> Hi again,
>>>
>>> Thanks for all your help -- it's getting closer to working. When I unzip the
>>> geoserver-1.7.3-SNAPSHOT-bin.zip "release," I get a directory tree that looks
>>> very much like the pre-compiled version I dowloaded. When I try to run it,
>>> though, I get an error which I did not get with the official release:
>>>
>>> java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at org.mortbay.start.Main.invokeMain(Main.java:166)
>>> at org.mortbay.start.Main.start(Main.java:497)
>>> at org.mortbay.start.Main.main(Main.java:115)
>>>
>>> Any thoughts? I don't see any .java, .class, or .jar files which are obviously
>>> relevent in either version.
>>>
>>> Thank you so much for all your installation & debugging help!
>>>
>>> -Eric
>>>
>>>
>>> Thus spake Justin Deoliveira (jdeolive@anonymised.com):
>>>
>>>> Hi Eric,
>>>>
>>>> Glad it is working. So basically what you have to do is build the
>>>> release artifacts. You will get the binary and war artifact, one of
>>>> which you can deploy to your server.
>>>>
>>>> The entire release process is documented in detail here:
>>>>
>>>> http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html
>>>>
>>>> But you probably will only care about this section:
>>>>
>>>> http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html#build-release-artifacts
>>>>
>>>> To sum up:
>>>>
>>>> From the root:
>>>>
>>>> 1) mvn -P release clean install
>>>> 2) mvn assembly:attached
>>>>
>>>> If you want to include a custom data directory you need to specify the
>>>> configId and configDirectory flags in step 1. Example:
>>>>
>>>> mvn -DconfigId=myDataDirectory
>>>> -DconfigDirectory=/location/where/i/keep/data/directories
>>>> -P release clean install
>>>>
>>>> Hope that helps.
>>>>
>>>> -Justin
>>>>
>>>>
>>>> Eric W Anderson wrote:
>>>>> Hi Justin,
>>>>>
>>>>> Thanks for your help! It seems to be building perfectly now, but that brings
>>>>> me to another maven and/or web services newbie question: How do I move
>>>>> geoserver from being installed in my local maven repository (looks like a
>>>>> directory tree under ~/.m2/repository/) to being installed on my web server?
>>>>> Is there a tar/jar/war/zip somewhere that I can copy to the appropriate machine
>>>>> and directory?
>>>>>
>>>>> Thanks again,
>>>>> Eric
>>>>>
>>>>> Thus spake Justin Deoliveira (jdeolive@anonymised.com):
>>>>>
>>>>>> Hi Eric,
>>>>>>
>>>>>> You actually have to do an "install" rather than "compile". The reason
>>>>>> being that there are modules that depend on other modules for test code,
>>>>>> in addition to just regular code. "compile" just complies the regular
>>>>>> source code (non-tests). Whereas install will compile both regular code
>>>>>> and test code, and install it in your local maven repository.
>>>>>>
>>>>>> The command I usually build with is "mvn clean install".
>>>>>>
>>>>>> Let us know if that does not work for you.
>>>>>>
>>>>>> -Justin
>>>>>>
>>>>>> Eric W Anderson wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I'm trying to build geoserver from source so that I'll have a starting point
>>>>>>> for writing a plugin. Let me say from the outset that this is unfamiliar
>>>>>>> territory: I've never used maven, jetty, or any of the associated paraphernalia
>>>>>>> before.
>>>>>>>
>>>>>>> What I'm doing seems like it should be simple, but things keep going wrong. I
>>>>>>> checked out the source with:
>>>>>>>
>>>>>>> svn co http://svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x
>>>>>>>
>>>>>>> I'm trying to compile with:
>>>>>>>
>>>>>>> cd geoserver-1.7.x/src
>>>>>>> mvn compile
>>>>>>>
>>>>>>> I end up with the following error:
>>>>>>>
>>>>>>> [INFO] ------------------------------------------------------------------------
>>>>>>> [ERROR] BUILD ERROR
>>>>>>> [INFO] ------------------------------------------------------------------------
>>>>>>> [INFO] Failed to resolve artifact.
>>>>>>> Missing:
>>>>>>> ----------
>>>>>>> 1) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
>>>>>>> Try downloading the file manually from the project website.
>>>>>>> Then, install it using the command: mvn
>>>>>>> install:install-file -DgroupId=org.geoserver -DartifactId=ows
>>>>>>> -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar
>>>>>>> -Dfile=/path/to/file
>>>>>>> Alternatively, if you host your own repository you can deploy the
>>>>>>> file there: mvn deploy:deploy-file -DgroupId=org.geoserver
>>>>>>> -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests
>>>>>>> -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
>>>>>>> Path to dependency: 1) org.geoserver:wms:jar:1.7.3-SNAPSHOT
>>>>>>> 2) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
>>>>>>> ----------
>>>>>>> 1 required artifact is missing.
>>>>>>> for artifact: org.geoserver:wms:jar:1.7.3-SNAPSHOT
>>>>>>>
>>>>>>> What am I doing wrong? I can see from the hudson server that this code branch
>>>>>>> passes automated build tests. I've tried manually finding the missing jar file
>>>>>>> on-line and installing it as described in the error message, but then I run
>>>>>>> into another missing artifact and another, ad infinitum. What am I
>>>>>>> missing?
>>>>>>>
>>>>>>> Any help would be greatly appreciated!
>>>>>>>
>>>>>>> -Eric
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> This SF.net email is sponsored by:
>>>>>>> High Quality Requirements in a Collaborative Environment.
>>>>>>> Download a free trial of Rational Requirements Composer Now!
>>>>>>> http://p.sf.net/sfu/www-ibm-com
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Geoserver-users mailing list
>>>>>>> Geoserver-users@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>>>>> --
>>>>>> Justin Deoliveira
>>>>>> OpenGeo - http://opengeo.org
>>>>>> Enterprise support for open source geospatial.
>>>> --
>>>> Justin Deoliveira
>>>> OpenGeo - http://opengeo.org
>>>> Enterprise support for open source geospatial.
>>>>
>>>> ------------------------------------------------------------------------------
>>>> This SF.net email is sponsored by:
>>>> High Quality Requirements in a Collaborative Environment.
>>>> Download a free trial of Rational Requirements Composer Now!
>>>> http://p.sf.net/sfu/www-ibm-com
>>>> _______________________________________________
>>>> Geoserver-users mailing list
>>>> Geoserver-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-users
>>
>> --
>> Justin Deoliveira
>> OpenGeo - http://opengeo.org
>> Enterprise support for open source geospatial.
>>
>> ------------------------------------------------------------------------------
>> This SF.net email is sponsored by:
>> High Quality Requirements in a Collaborative Environment.
>> Download a free trial of Rational Requirements Composer Now!
>> http://p.sf.net/sfu/www-ibm-com
>> _______________________________________________
>> Geoserver-devel mailing list
>> Geoserver-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> High Quality Requirements in a Collaborative Environment.
> Download a free trial of Rational Requirements Composer Now!
> http://p.sf.net/sfu/www-ibm-com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Geoserver-devel mailing list
> Geoserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Eric W. Anderson University of Colorado
eric.anderson@anonymised.com Dept. of Computer Science
phone: +1-720-984-8864 Systems Research Lab - ECCR 1B54

                         PGP key fingerprints:
       personal: 1BD4 CFCE 8B59 8D6E EA3E EBD5 4DC9 3E61 656C 462B
       academic: D3C5 D6FF EDED 9F1F C36D 53A3 74B7 53A6 3C74 5F12

Hi Eric,

Thanks a lot for taking the time to write this up. It will be very helpful. One of the things that has been on my TODO list for a while now is updating the maven and eclipse quickstarts in the developer guide. I will definitely incorporate your write up into that.

Thanks again.

-Justin

Eric W Anderson wrote:

I wrote up a little mini-howto at
http://geoserver.org/display/GEOSDOC/Building+GeoServer+from+source+code . I
don't think it's quite ready for prime time, but it is ready for feedback. Hit
me with comments (or just edit the page)!

-Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

Glad you got it to work. And I apologize for our lack of good documentation for developers. It is something we are working on, slowly but surely.

Anything you wanted to contribute about your findings woudl be great. I would suggest signing up for our wiki:

http://geoserver.org/signup.action

And adding a new page detailing your experiences.

-Justin

Eric W Anderson wrote:

Hi Justin,

OK, that looks like a success. I thought I built it with the "-P release" flag
before, but evidently not. Thanks for all of your help.

The whole process has been decidedly unintuitive, at least for someone with my
background. This list has been extraordinarily helpful, but I burned a whole
lot of time trying to figure everything out before joining the mailing list.

Is there anywhere I can contribute to the web documentation to make this
process easier for the next guy?

Thanks for everything,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

(If you could keep responses on the public list that would be appreciated, thanks).

What it looks like to me is that the release directory was not built properly. Are you sure you built with the "-P release" switch? Again the commands should be:

mvn -P release clean install
mvn assembly:attached

The "-P release" part actives the build of the release directory, which contains all the jetty jars. The exception tells me that the jetty jars are missing.

Also, just to ensure, you are running the startup.sh or startup.bat file?

-Justin

Eric W Anderson wrote:

Hi again,

Thanks for all your help -- it's getting closer to working. When I unzip the
geoserver-1.7.3-SNAPSHOT-bin.zip "release," I get a directory tree that looks
very much like the pre-compiled version I dowloaded. When I try to run it,
though, I get an error which I did not get with the official release:

java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
  at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  at org.mortbay.start.Main.invokeMain(Main.java:166)
  at org.mortbay.start.Main.start(Main.java:497)
  at org.mortbay.start.Main.main(Main.java:115)

Any thoughts? I don't see any .java, .class, or .jar files which are obviously
relevent in either version.

Thank you so much for all your installation & debugging help!

-Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

Glad it is working. So basically what you have to do is build the release artifacts. You will get the binary and war artifact, one of which you can deploy to your server.

The entire release process is documented in detail here:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html

But you probably will only care about this section:

http://gridlock.openplans.org/geoserver/1.7.x/doc/developer/release-guide.html#build-release-artifacts

To sum up:

From the root:

1) mvn -P release clean install
2) mvn assembly:attached

If you want to include a custom data directory you need to specify the configId and configDirectory flags in step 1. Example:

mvn -DconfigId=myDataDirectory
   -DconfigDirectory=/location/where/i/keep/data/directories
   -P release clean install

Hope that helps.

-Justin

Eric W Anderson wrote:

Hi Justin,

Thanks for your help! It seems to be building perfectly now, but that brings
me to another maven and/or web services newbie question: How do I move
geoserver from being installed in my local maven repository (looks like a
directory tree under ~/.m2/repository/) to being installed on my web server?
Is there a tar/jar/war/zip somewhere that I can copy to the appropriate machine
and directory?

Thanks again,
Eric

Thus spake Justin Deoliveira (jdeolive@anonymised.com):

Hi Eric,

You actually have to do an "install" rather than "compile". The reason being that there are modules that depend on other modules for test code, in addition to just regular code. "compile" just complies the regular source code (non-tests). Whereas install will compile both regular code and test code, and install it in your local maven repository.

The command I usually build with is "mvn clean install".

Let us know if that does not work for you.

-Justin

Eric W Anderson wrote:

Hi all,

I'm trying to build geoserver from source so that I'll have a starting point
for writing a plugin. Let me say from the outset that this is unfamiliar
territory: I've never used maven, jetty, or any of the associated paraphernalia
before.

What I'm doing seems like it should be simple, but things keep going wrong. I
checked out the source with:

svn co http://svn.codehaus.org/geoserver/branches/1.7.x geoserver-1.7.x

I'm trying to compile with:

cd geoserver-1.7.x/src
mvn compile

I end up with the following error:

  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD ERROR
  [INFO] ------------------------------------------------------------------------
  [INFO] Failed to resolve artifact.
    Missing:
  ----------
  1) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
      Try downloading the file manually from the project website.
      Then, install it using the command: mvn install:install-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file
      Alternatively, if you host your own repository you can deploy the file there: mvn deploy:deploy-file -DgroupId=org.geoserver -DartifactId=ows -Dversion=1.7.3-SNAPSHOT -Dclassifier=tests -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
      Path to dependency: 1) org.geoserver:wms:jar:1.7.3-SNAPSHOT
      2) org.geoserver:ows:jar:tests:1.7.3-SNAPSHOT
    ----------
  1 required artifact is missing.
    for artifact: org.geoserver:wms:jar:1.7.3-SNAPSHOT

What am I doing wrong? I can see from the hudson server that this code branch
passes automated build tests. I've tried manually finding the missing jar file
on-line and installing it as described in the error message, but then I run
into another missing artifact and another, ad infinitum. What am I missing?

Any help would be greatly appreciated!

-Eric

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

------------------------------------------------------------------------

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com

------------------------------------------------------------------------

_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.