maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ron Wheeler <rwhee...@artifact-software.com>
Subject Re: Assembly Plugin Problem with multi module Project
Date Sun, 01 May 2011 15:02:37 GMT
What are you trying to build?
Unless you are building something that is really off-beat, you should 
just be able to follow best practices.

Most people do not need to do what you are doing.

You seem to heading down a bizarre development path that is likely not 
needed and going to set up a complex and fragile build system.
Maven has Best Practices for all kinds of applications (from webapps to 
batch jobs to desktop apps) with sizes that range from 1 module to hundreds.
Very few of them involve anything as complex as what you are building.

You might take a minute to describe what you are trying to build and see 
if you get a simple solution.

One of the problems in this forum is that some of the guys here can make 
Maven do almost anything.
If you ask them a detailed technical question with no context, you will 
get a perfectly correct response that moves you forward.
If you are going down the wrong path, rapid progress is not necessarily 
in your best interest.

Take a step back and let the forum know what you are trying to build and 
how your sources are structured.

Ron

On 01/05/2011 9:50 AM, Dmitriy Neretin wrote:
> I need not only dependenciesSets, but also fileSets...
>
> 2011/4/28 Anders Hammar<anders@hammar.net>
>
>> You should not traverse the file structure but rely on dependencies! It
>> should work building when just checking out this specific module from scm.
>>
>> /Anders
>>
>> On Thu, Apr 28, 2011 at 18:01, Dmitriy Neretin<
>> dmitriy.neretin@googlemail.com>  wrote:
>>
>>> Holy sh... :)) Of cource it works :) But it is not really that what I
>>> wanted
>>> but it's not important now :) Thank you very much. But I still don't
>>> understand why the moduleSet didn't work... Strange (How old is the maven
>>> documentation????). With this variable ${project.parent.basedir} I can
>> get
>>> access on parent directory structure. So I hope to solve my problems
>>> completly!
>>>
>>> Have a nice day!
>>>
>>> 2011/4/28 Anders Hammar<anders@hammar.net>
>>>
>>>> No, you should not use moduleSet but dependencySet (or similar, I'm not
>>> at
>>>> my computer and cannot check syntax).
>>>>
>>>> /Anders (mobile)
>>>> Den 28 apr 2011 17.14 skrev "Dmitriy Neretin"<
>>>> dmitriy.neretin@googlemail.com>:
>>>>> Well I just removed the assembly declaration from the parent POM. I
>>> just
>>>>> left there the new distribution module. When I change to the
>>> distribution
>>>>> folder and execute mvn assembly:single or mvn clean package I get
>> this:
>>>>> [INFO] Reading assembly descriptor: config/assembly.xml
>>>>> [WARNING] The following patterns were never triggered in this
>> artifact
>>>>> inclusion filter:
>>>>> o 'A'
>>>>>
>>>>> [WARNING] The following patterns were never triggered in this
>> artifact
>>>>> inclusion filter:
>>>>> o 'A'
>>>>>
>>>>> [WARNING] NOTE: Currently, inclusion of module dependencies may
>> produce
>>>>> unpredictable results if a version conflict occu
>>>>> rs.
>>>>> [INFO]
>>>>>
>>> ------------------------------------------------------------------------
>>>>> [ERROR] BUILD ERROR
>>>>> [INFO]
>>>>>
>>> ------------------------------------------------------------------------
>>>>> [INFO] Failed to create assembly: Error creating assembly archive
>> test:
>>>> You
>>>>> must set at least one file.
>>>>>
>>>>> Well the descriptor war reas only once, but we still see the double
>>>> warning
>>>>> about failed trigger :(
>>>>>
>>>>> But the assembly configuration is right:
>>>>>
>>>>> <moduleSets>
>>>>> <moduleSet>
>>>>> <useAllReactorProjects>true</useAllReactorProjects>
>>>>> <includes>
>>>>> <include>A</include>
>>>>> </includes>
>>>>> <binaries>
>>>>> <outputDirectory>tools/caseviewer</outputDirectory>
>>>>> <unpack>false</unpack>
>>>>> </binaries>
>>>>> </moduleSet>
>>>>> </moduleSets>
>>>>>
>>>>>
>>>>> 2011/4/28 Anders Hammar<anders@hammar.net>
>>>>>
>>>>>> Ok, the log output indicates that the assembly is executed twice
>>> (there
>>>> is
>>>>>> a
>>>>>> warning about the same id used twice).
>>>>>> Start by removing any assembly configuration from your parent, to
>> keep
>>>>>> things simple. Just add it yo your module. When you get that to work
>>> you
>>>>>> could start by doing advanced stuff.
>>>>>>
>>>>>> /Anders
>>>>>>
>>>>>> On Thu, Apr 28, 2011 at 15:37, Dmitriy Neretin<
>>>>>> dmitriy.neretin@googlemail.com>  wrote:
>>>>>>
>>>>>>> Thanks for the reply!
>>>>>>>
>>>>>>> 2011/4/28 Anders Hammar<anders@hammar.net>
>>>>>>>
>>>>>>>> The "declaration" in your parent, is that a binding? Or is
it in
>>>>>>>> pluginManagement?
>>>>>>>>
>>>>>>> Well I don't really understand what do you mean with binding
:)
>> The
>>>>>>> assembly
>>>>>>> plugin is declared between the<plugins/>  tags:
>>>>>>>
>>>>>>> <plugins>
>>>>>>> <plugin>
>>>>>>> Assembly declaration
>>>>>>> </plugin>
>>>>>>> </plugins>
>>>>>>>
>>>>>>>
>>>>>>>> Why are configuring the descriptor in the parent? Are you
trying
>>> to
>>>>>> make
>>>>>>> an
>>>>>>>> assembly in the parent as well as in the child?
>>>>>>>>
>>>>>>> I configure the descriptor in the parent because I have read
this
>>>> under
>>>>>> the
>>>>>>> link below (maven documentation). And I am not really shure it
is
>>>>>> right...
>>>>>>> I
>>>>>>> am trying now to make an assembly from the child project but
the
>>> main
>>>>>>> target
>>>>>>> is preety simple: After compiling (mvn install) of the whole
>> project
>>>>>> (from
>>>>>>> the parent level) I want to find in the distribution directory
>> some
>>>>>>> artifacts like binaries, some skripts, zips etc. I have already
>> used
>>>> this
>>>>>>> plugin for a child project to build a zip file and it worked
:(
>>>>>>>
>>>>>>>> /Anders
>>>>>>>> On Thu, Apr 28, 2011 at 15:03, Dmitriy Neretin<
>>>>>>>> dmitriy.neretin@googlemail.com>  wrote:
>>>>>>>>
>>>>>>>>> Hello everybody,
>>>>>>>>>
>>>>>>>>> I have a problem with the assembly plugin. I used the
>> following
>>>>>>>>> documentation:
>>>>>>>>>
>>>>>>>>>
>>>>
>> http://maven.apache.org/plugins/maven-assembly-plugin/examples/multimodule/module-binary-inclusion-simple.html
>>>>>>>>> I created the additional module to keep my assembly in
the
>>> parent
>>>>>> POM:
>>>>>>>>> ...
>>>>>>>>> <modules>
>>>>>>>>> <module>A</module>
>>>>>>>>> <module>B</module>
>>>>>>>>> <module>C</module>
>>>>>>>>> <module>distribution</module>
>>>>>>>>> </modules>
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>> and declared the assembly plugin in the parent POM:
>>>>>>>>>
>>>>>>>>> <plugin>
>>>>>>>>> <groupId>org.apache.maven.plugins</groupId>
>>>>>>>>> <artifactId>maven-assembly-plugin</artifactId>
>>>>>>>>> <version>2.2.1</version>
>>>>>>>>> <configuration>
>>>>>>>>> <descriptor>config/assembly.xml</descriptor>
>>>>>>>>> </configuration>
>>>>>>>>> </plugin>
>>>>>>>>>
>>>>>>>>> after that I declared the new POM in the distribution
>> directory
>>>> where
>>>>>> I
>>>>>>>>> also
>>>>>>>>> referenced the parent POM:
>>>>>>>>>
>>>>>>>>> <parent>
>>>>>>>>> <groupId>GROUPNAME</groupId>
>>>>>>>>> <artifactId>NAME</artifactId>
>>>>>>>>> <version>VERSION</version>
>>>>>>>>> <relativePath>../pom.xml</relativePath>
>>>>>>>>> </parent>
>>>>>>>>>
>>>>>>>>> and also declared the assembly plugin:
>>>>>>>>>
>>>>>>>>> <plugin>
>>>>>>>>> <artifactId>maven-assembly-plugin</artifactId>
>>>>>>>>> <executions>
>>>>>>>>> <execution>
>>>>>>>>> <id>create-assembly</id>
>>>>>>>>> <phase>package</phase>
>>>>>>>>> <goals>
>>>>>>>>> <goal>single</goal>
>>>>>>>>> </goals>
>>>>>>>>> <configuration>
>>>>>>>>> <descriptors>
>>>>>>>>> <descriptor>config/assembly.xml</descriptor>
>>>>>>>>> </descriptors>
>>>>>>>>> </configuration>
>>>>>>>>> </execution>
>>>>>>>>> </executions>
>>>>>>>>> </plugin>
>>>>>>>>>
>>>>>>>>> The assembly.xml is placed in the distribution/config
>> directory
>>>> and
>>>>>>> looks
>>>>>>>>> like this:
>>>>>>>>>
>>>>>>>>> <id>test</id>
>>>>>>>>>
>>>>>>>>> <formats>
>>>>>>>>> <format>dir</format>
>>>>>>>>> </formats>
>>>>>>>>>
>>>>>>>>> <includeBaseDirectory>false</includeBaseDirectory>
>>>>>>>>> <moduleSets>
>>>>>>>>> <moduleSet>
>>>>>>>>> <useAllReactorProjects>true</useAllReactorProjects>
>>>>>>>>> <includes>
>>>>>>>>> <include>A</include>
>>>>>>>>> </includes>
>>>>>>>>> <binaries>
>>>>>>>>> <outputDirectory>TOOLS</outputDirectory>
>>>>>>>>> <unpack>false</unpack>
>>>>>>>>> </binaries>
>>>>>>>>> </moduleSet>
>>>>>>>>> </moduleSets>
>>>>>>>>>
>>>>>>>>> If I execute mvn clean package I get following error
message:
>>>>>>>>>
>>>>>>>>> [INFO] Reading assembly descriptor: config/assembly.xml
>>>>>>>>> [WARNING] The assembly id test is used more than once.
>>>>>>>>> [WARNING] The following patterns were never triggered
in this
>>>>>> artifact
>>>>>>>>> inclusion filter:
>>>>>>>>> o 'A'
>>>>>>>>>
>>>>>>>>> [WARNING] The following patterns were never triggered
in this
>>>>>> artifact
>>>>>>>>> inclusion filter:
>>>>>>>>> o 'A'
>>>>>>>>>
>>>>>>>>> [WARNING] NOTE: Currently, inclusion of module dependencies
>> may
>>>>>> produce
>>>>>>>>> unpredictable results if a version conflict occu
>>>>>>>>> rs.
>>>>>>>>> [INFO]
>>>>>>>>>
>> ------------------------------------------------------------------------
>>>>>>>>> [ERROR] BUILD ERROR
>>>>>>>>> [INFO]
>>>>>>>>>
>> ------------------------------------------------------------------------
>>>>>>>>> [INFO] Failed to create assembly: Error creating assembly
>>> archive
>>>>>> test:
>>>>>>>> You
>>>>>>>>> must set at least one file.
>>>>>>>>>
>>>>>>>>> [INFO]
>>>>>>>>>
>> ------------------------------------------------------------------------
>>>>>>>>> If I execute mvn assembly:single then the message that
>> assembly
>>> id
>>>>>> used
>>>>>>>>> more
>>>>>>>>> than once disappears.
>>>>>>>>> I use Maven 2.2.1 on WinXp Pro
>>>>>>>>>
>>>>>>>>> Can somebody help me?
>>>>>>>>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message