[jsword-devel] maven vs ant

Trenton D. Adams trent.jsword at trentonadams.ca
Sun Feb 21 10:13:59 MST 2010


Oops, missed a step

Since we don't have jlfgr as a sub module yet, we need to install it in our local maven repo in ~/.m2/repository

mvn deploy:deploy-file -Dfile=bibledesktop/jar/jlfgr-1.0/jlfgr-1_0.jar -DartifactId=jlfgr -Dpackaging=jar -DgroupId=org.crosswire -Dversion=1.0 -Durl=file:///full-path-to-your-home/.m2/repository/

----- "trent jsword" <trent.jsword at trentonadams.ca> wrote:

> From: "trent jsword" <trent.jsword at trentonadams.ca>
> To: "J-Sword Developers Mailing List" <jsword-devel at crosswire.org>
> Sent: Sunday, February 21, 2010 2:42:27 AM GMT -06:00 US/Canada Central
> Subject: Re: [jsword-devel] maven vs ant
>
> Hi Guys,
> 
> Okay, so I have a working bible desktop using maven; though I'm not
> done yet.  Yep, converting to maven is definitely not something that
> someone who's never used maven before would want to do.  It took a bit
> longer than expected (2-4 hours), and I'm still not done. ;) 
> Although, who knows, someone who knows the jsword project better might
> have been faster?!?! :P
> 
> I still need to do at least the following...
> - jar signing # never done it before
> - run bibledesktop using a profile
> - work something out for the jlfgr jar.  Perhaps those should just be
> in the bibledesktop resources?  Or should they be in their own module?
>  We could just create a sub module, with no source files, and only
> "src/main/resources", and package them in a jar automatically?
> - write an email with a bunch of maven gotchas, so you guys don't bang
> your heads against walls in the maven learning curve.
> - finish fixing unit test issues
> - the jsword project lead needs to prepare an account on a public
> maven repository, so we can push these things through maven.  Assuming
> of course that is what you guys want to do.  Or, if you really want,
> we can setup a maven.crosswire.org repository, and just put that in
> the base pom.
> 
> I highly recommend the core developers move ALL resources to
> "src/main/resources" of each sub module.  After that, the "resources"
> sections in the poms can be removed, as the default behaviour is to
> copy all files from the "src/main/resources" folder into the classpath
> before building the JARs.  I *hacked* the resource filters I currently
> have in the POM files, because I didn't want to mess around figuring
> out what resources were in what module, etc; so I just made them all
> the same, lol.
> 
> I realized why some of the tests are failing.  It's because I need to
> setup the "testResources" in the poms, or we need to move the test
> resources to "src/test/resources" of each submodule as I mentioned
> above for the main resources.
> 
> The following commands, from the command line, should work.  At some
> point, I'll try it in eclipse for you guys, and see if there's any
> maven related problems.  I don't use eclipse, so I don't know yet.
> 
> The following commands will only work in a unix environment, including
> mac os X terminal. I literally copied and pasted the following
> commands in their entirety, into my terminal, and they "just worked". 
> If you have problems, let me know.
> 
> # put poms.tar.gz in trunk/
> tar -xvzf poms.tar.gz # extracts all poms to appropriate folders.
> mvn install
> cd bibledesktop
> mvn dependency:copy-dependencies # copies all dependencies to
> "target/dependency"
> export CLASSPATH=target/bibledesktop-1.6.1-SNAPSHOT.jar:$(for jar in
> target/dependency/*.jar; do echo -n $jar:; done)
> 
> java org.crosswire.bibledesktop.desktop.Desktop
> 
> 
> YAY it's working, hehe.
> 
> ----- "trent jsword" <trent.jsword at trentonadams.ca> wrote:
> 
> > From: "trent jsword" <trent.jsword at trentonadams.ca>
> > To: "J-Sword Developers Mailing List" <jsword-devel at crosswire.org>
> > Sent: Saturday, February 20, 2010 9:55:18 PM GMT -06:00 US/Canada
> Central
> > Subject: Re: [jsword-devel] maven vs ant
> >
> > ----- "DM Smith" <dmsmith at crosswire.org> wrote:
> > 
> > > From: "DM Smith" <dmsmith at crosswire.org>
> > > To: "J-Sword Developers Mailing List"
> <jsword-devel at crosswire.org>
> > > Sent: Saturday, February 20, 2010 5:45:19 PM GMT -06:00 US/Canada
> > Central
> > > Subject: Re: [jsword-devel] maven vs ant
> > >
> > > Joe and I restructured JSword's projects to be inline with
> Maven's
> > > expectations. So that we could get there some day.
> > > 
> > 
> > Very nice! ;)  Worked great on commons folder.  Only the LZSSTest
> is
> > failing, and it's cause there's an issue with the kjv_genesis.txt
> > resource.  I'll work that out once I get the other modules working.
> 
> > But, on the upside, 38 of 39 tests passed fine.
> > 
> > Your mac should have maven 2.0.10 on it already, so it should just
> > work.
> > 
> > Below is the pom.xml, just stick it in trunk/common/pom.xml
> > 
> > Run the following
> > mvn -P test package
> > 
> > The test profile above enables testing, which I have disabled by
> > default; you can see that in the POM.
> > 
> > Right now, it's a standalone pom.  Later, I'll have a base pom in
> > trunk/, and all other poms will inherit from that.  But, I wanted
> to
> > get common working first. :D
> > 
> > 
> > <?xml version="1.0" encoding="UTF-8"?>
> > <project xmlns="http://maven.apache.org/POM/4.0.0"
> >          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/maven-v4_0_0.xsd">
> >   <modelVersion>4.0.0</modelVersion>
> >   <groupId>org.crosswire</groupId>
> >   <artifactId>jsword-common</artifactId>
> >   <packaging>jar</packaging>
> >   <version>1.6.1-SNAPSHOT</version>
> >   <name>jsword-common</name>
> >   <url>http://maven.apache.org</url>
> >   <dependencies>
> >     <dependency>
> >       <groupId>junit</groupId>
> >       <artifactId>junit</artifactId>
> >       <version>3.8.1</version>
> >       <scope>test</scope>
> >     </dependency>
> >     <dependency>
> >       <groupId>log4j</groupId>
> >       <artifactId>log4j</artifactId>
> >       <version>1.2.12</version>
> >       <scope>compile</scope>
> >     </dependency>
> > 
> >     <dependency>
> >       <groupId>commons-codec</groupId>
> >       <artifactId>commons-codec</artifactId>
> >       <version>1.3</version>
> >     </dependency>
> >     <dependency>
> >       <groupId>commons-httpclient</groupId>
> >       <artifactId>commons-httpclient</artifactId>
> >       <version>3.1</version>
> >     </dependency>
> >     <dependency>
> >       <groupId>commons-logging</groupId>
> >       <artifactId>commons-logging</artifactId>
> >       <version>1.1.1</version>
> >     </dependency>
> >     <dependency>
> >       <groupId>commons-net</groupId>
> >       <artifactId>commons-net</artifactId>
> >       <version>1.4.1</version>
> >     </dependency>
> >     <dependency>
> >       <groupId>javatar</groupId>
> >       <artifactId>javatar</artifactId>
> >       <version>2.5</version>
> >     </dependency>
> >     <dependency>
> >       <groupId>jdom</groupId>
> >       <artifactId>jdom</artifactId>
> >       <version>1.0</version>
> >     </dependency>
> >     
> >   </dependencies>
> >   <build>
> >     <plugins>
> >       <plugin>
> >         <groupId>org.apache.maven.plugins</groupId>
> >         <artifactId>maven-compiler-plugin</artifactId>
> >         <configuration>
> >           <source>1.6</source>
> >           <target>1.6</target>
> >         </configuration>
> >       </plugin>
> >     </plugins>
> >   </build>
> > 
> >   <properties>
> >     <maven.test.skip>true</maven.test.skip>
> >   </properties>
> > 
> >   <profiles>
> >     <profile>
> >       <id>test</id>
> >       <properties>
> >         <maven.test.skip>false</maven.test.skip>
> >       </properties>
> >     </profile>
> >   </profiles>
> > </project>
> > 
> > _______________________________________________
> > jsword-devel mailing list
> > jsword-devel at crosswire.org
> > http://www.crosswire.org/mailman/listinfo/jsword-devel
> 
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel



More information about the jsword-devel mailing list