It's your call. Just please understand that even if it's possible
doesn't make it the right way of doing things.

I tried to think of issues with this approach (other than the
versioning thing I already mentioned) and the only thing I can think
of is if you have different dependencies for your customers' jar
files. That's not possible as you only have one pom for all jars.

/A

On Wed, Jun 17, 2009 at 22:03, David Weintraub<[email protected]> wrote:
> Yes, this is an Ant project going over to Maven by order of High Lord of All
> Matters Important. One of the things I have to do is keep the final output
> as close to the Ant build's output as possible. Since I am the "Maven
> maven", I am the one stuck with this task and not the developer.
>
> There are separate jarfiles for each client, and a "core" jarfile that
> contains only the common jars. I was originally thinking of creating
> directories for each client and treating them as modules, but the developers
> vetoed the idea of moving the java files into each client. They want the
> Java files all together.
>
> Treating each client's jar as an assembly made things a bit simpler since I
> can build each Jar with the required classfiles in separate execution
> sections. Otherwise, I would have to define separate directories for each
> client, and then try to define a pom.xml which would build the jarfile for
> that client from the compiled code that is in the main project's directory.
>
> I finally created an assembly file that defined the zipfile into a similar
> format the original Ant build produced.
>
> On Wed, Jun 17, 2009 at 2:42 PM, Anders Hammar <[email protected]> wrote:
>
>> Only so that you don't forget, the general Maven rule is "one project,
>> one artifact". You could use classifiers to create more than one
>> artifact for a project, but I don't really see the benefit. Have
>> several projects is not bad (I think), it makes your code base
>> structured. Changes to one customer's code will then only affect that
>> customer's project and making it possible to make a new release for
>> just that customer. If you mix all customers' code in one project you
>> will get a new version for all customers (while only one of them has
>> really changed). Not very clean I think.
>> The assemblies goes in separate projects.
>>
>> Just my two cents,
>> /Anders
>>
>> On Wed, Jun 17, 2009 at 19:41, David Weintraub<[email protected]> wrote:
>> > Thanks. It took me a while to figure this out. At first, I tried to
>> create a
>> > separate <plugin> for each client. However, only the first one executed.
>> > Then, I tried to add a new <execution> definition to the maven-jar-plugin
>> > artifact, but kept getting errors. I finally realized that each
>> <execution>
>> > needed its own "id".
>> >
>> > This created the separate jars that were needed. Now, I have to create an
>> > assembly for each of these clients.
>> >
>> > On Wed, Jun 17, 2009 at 5:45 AM, losa <[email protected]> wrote:
>> >
>> >>
>> >> You can use the maven-jar-plugin for generating more than one jar file
>> >> filtering the classes you want to include.
>> >>
>> >> Example:
>> >> <plugin>
>> >>        <groupId>org.apache.maven.plugins</groupId>
>> >>        <artifactId>maven-jar-plugin</artifactId>
>> >>        <executions>
>> >>                <execution>
>> >>                        <phase>package</phase>
>> >>                        <goals>
>> >>                                <goal>jar</goal>
>> >>                        </goals>
>> >>                        <configuration>
>> >>                                <classifier>my-client</classifier>
>> >>                                <includes>
>> >>
>> >>  <include>**/pkg1/MyClass.class</include>
>> >>                                </includes>
>> >>                                <excludes>
>> >>
>> >>  <exclude>**/pkg2/MyClass.class</exclude>
>> >>                                </excludes>
>> >>                        </configuration>
>> >>                </execution>
>> >>        </executions>
>> >> </plugin>
>> >>
>> >> The generated jar will be copied o your repository. Then, when you need
>> to
>> >> use the jar from another project, you can include the dependency like
>> this
>> >>
>> >>                <dependency>
>> >>                        <groupId>${project.groupId}</groupId>
>> >>                        <artifactId>theJarName</artifactId>
>> >>                        <version>theJarVersion</version>
>> >>                        <classifier>my-client</classifier>
>> >>                </dependency>
>> >>
>> >>
>> >> More information at:
>> >> http://maven.apache.org/plugins/maven-jar-plugin/index.html
>> >> http://maven.apache.org/plugins/maven-jar-plugin/index.html
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/How-to-create-many-jars-in-package-phase--tp23646150p24070227.html
>> >> Sent from the Maven - Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [email protected]
>> >> For additional commands, e-mail: [email protected]
>> >>
>> >>
>> >
>> >
>> > --
>> > David Weintraub
>> > [email protected]
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> --
> David Weintraub
> [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to