Di you use the correct goal of m-assembly-p? Read the docs carefully! /Anders
On Tue, Sep 21, 2010 at 01:23, Jon Paynter <[email protected]> wrote: > Well this kinda works... > I made another project as a sibling, moved the assembly stuff from the > parent pom into the new project. but now when I run mvn package I get the > following: > > [INFO] Building OC4J_TNM_BE_package > [INFO] > ------------------------------------------------------------------------ > [WARNING] Removing: assembly from forked lifecycle, to prevent recursive > invocation. > [INFO] [site:attach-descriptor {execution: default-attach-descriptor}] > [INFO] [assembly:assembly {execution: Make-OC4JDistribution}] > [INFO] Reading assembly descriptor: src/assemble/OC4JDistribution.xml > [WARNING] The following patterns were never triggered in this artifact > inclusion filter: > o 'myCompany:OC4J_TNM_BE.rar' > o 'myCompany:OC4J_TNM_BE.ear' > [WARNING] The following patterns were never triggered in this artifact > inclusion filter: > o 'myCompany:OC4J_TNM_BE.rar' > o 'myCompany:OC4J_TNM_BE.ear' > [WARNING] NOTE: Currently, inclusion of module dependencies may produce > unpredictable results if a version conflict occurs. > [INFO] Copying files to C:\Documents and > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE_package\target\dev > [WARNING] Assembly file: C:\Documents and > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE_package\target\dev is not a regular > file (it may be a directory). It cannot be attached to the project build > for > installation or deployment. > > It looks like the assembly is being called twice. anyone know why that is? > but more importandly -- why cant it find my modules? > > I just want the ear and rar binaries to be included in the assembly. I > tried the built-in descriptorRef 'bin' but that gave an error saying it > cant find anything because its only looking for jar files. > > > > On Mon, Sep 20, 2010 at 1:19 PM, Jon Paynter <[email protected]> wrote: > > > Actually the top pom i posted is in the 2nd level of my project hierarchy > > that ive created. The other modules generate normal jar files. Its the > > OC4J components that were giving me greif so I isolated that one. > > > > so to move the assembly to its own module - that would mean something > like > > this: > > <modules> > > <module>OC4J_TNM_BE.war</module> > > <module>OC4J_TNM_BE.ear</module> > > <module>OC4J_TNM_BE.rar</module> > > <module>OC4J_TNM_BE_package</module> > > </modules> > > > > Where the package module would depend on the ear, war and rar modules. > Or > > do I put the packager module in a different spot in the directory tree? > > > > Also - what do i need to look out for when setting up this pattern to > > handle 20+ OC4J components? > > > > On Mon, Sep 20, 2010 at 11:54 AM, Anders Hammar <[email protected]> > wrote: > > > >> The solution is to put the assembly in a separate module. This is best > >> practice. > >> I guess your "top pom" (the aggregator pom) is the parent pom as well, > >> right? In that case, it has to be built first and that would make the > >> assembly plugin run before any module has been built. This should be > easy > >> to > >> spot in the console output. > >> > >> This problem has been discussed at least twice over the last month. > >> Clearly > >> there is a need to stress this FAQ entry: > >> > >> > http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries > >> > >> /Anders > >> > >> On Mon, Sep 20, 2010 at 20:26, Jon Paynter <[email protected]> wrote: > >> > >> > Thanks for the reply -- > >> > > >> > My local repo is empty -- this case by design. when building a clean > >> (or > >> > new) version, the assembly should take the file thats recently > changed, > >> and > >> > not an older version sitting in the repository. > >> > > >> > I put the revelant (I think) files here: > >> > http://gist.github.com/588355 > >> > > >> > If that doesnt work, let me know and i'll just post them in this email > >> > thread. > >> > The end goal is to somewhat duplicate our existing ant build where all > >> > revalant files are copied to a folder named Release/${envType}/ and > the > >> > appropiate structure created. > >> > The assembly xml file I posted puts all the files for a single OC4J > >> > component into the proper directories, so that part works okay. > >> > > >> > And again -- if theres a better way to accomplish what im trying to > do, > >> let > >> > me know. Im very new to maven. > >> > > >> > Thanks, > >> > Jon. > >> > > >> > On Mon, Sep 20, 2010 at 11:01 AM, Nayan Hajratwala <[email protected]> > >> > wrote: > >> > > >> > > Have you looked in your local maven repo to see if the artifact is > >> where > >> > > you think it is? According to this output, your war file should > exist > >> in: > >> > > > >> > > > >> > <home>/.m2/repository/myCompany/OC4J_TNM_BE/1.0/OC4J_TNM_BE-1.0.war > >> > > > >> > > However, as stephane noted, you should probably be building > >> 1.0-SNAPSHOT, > >> > > not 1.0.. > >> > > > >> > > Can you post your whole pom? It would probably make it much quicker > to > >> > > detect the problem. An easy place to share stuff like this is: > >> > > http://gist.github.com/ > >> > > > >> > > --- > >> > > Nayan Hajratwala > >> > > http://agileshrugged.com > >> > > http://twitter.com/nhajratw > >> > > 734.658.6032 > >> > > > >> > > On Sep 20, 2010, at 1:03 PM, Jon Paynter wrote: > >> > > > >> > > > After posting, I kept investigating on my side and the problem > seems > >> to > >> > > be > >> > > > in the assembly plugin.. not the ear plugin. I have the following > >> > > section > >> > > > in my top level pom: > >> > > > > >> > > > <build> > >> > > > <plugins> > >> > > > <plugin> > >> > > > <artifactId>maven-assembly-plugin</artifactId> > >> > > > <inherited>false</inherited> > >> > > > <configuration> > >> > > > > <ignoreDirFormatExtensions>true</ignoreDirFormatExtensions> > >> > > > <appendAssemblyId>false</appendAssemblyId> > >> > > > <finalName>${envType}</finalName> > >> > > > <descriptors> > >> > > > > >> <descriptor>src/assemble/OC4JDistribution.xml</descriptor> > >> > > > </descriptors> > >> > > > </configuration> > >> > > > <!-- > >> > > > <executions> > >> > > > <execution> > >> > > > <id>Make-OC4JDistribution</id> > >> > > > <phase>package</phase> > >> > > > <goals> > >> > > > <goal>assembly</goal> > >> > > > </goals> > >> > > > </execution> > >> > > > </executions> > >> > > > --> > >> > > > </plugin> > >> > > > </plugins> > >> > > > </build> > >> > > > With the executions commented out, all builds fine. but when I > run > >> mvn > >> > > > assembly:assembly or uncomment the execution, then I get the > >> previous > >> > > error > >> > > > if running maven 3.1, or the following if im running 2.2.1: > >> > > > > >> > > > C:\Documents and Settings\xxxx\OC4J_TNM_BE>mvn assembly:assembly > >> > > > [INFO] Scanning for projects... > >> > > > [INFO] Reactor build order: > >> > > > [INFO] OC4J_TNM_BE > >> > > > [INFO] OC4C_TNM_BE war > >> > > > [INFO] OC4C_TNM_BE ear > >> > > > [INFO] OC4C_TNM_BE rar > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Building OC4J_TNM_BE > >> > > > [INFO] task-segment: [assembly:assembly] (aggregator-style) > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Preparing assembly:assembly > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Building OC4J_TNM_BE > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] [site:attach-descriptor {execution: > >> default-attach-descriptor}] > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Building OC4C_TNM_BE war > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] [resources:resources {execution: default-resources}] > >> > > > [INFO] Using 'UTF-8' encoding to copy filtered resources. > >> > > > [INFO] Copying 0 resource > >> > > > [INFO] [compiler:compile {execution: default-compile}] > >> > > > [INFO] No sources to compile > >> > > > [INFO] [resources:testResources {execution: > default-testResources}] > >> > > > [INFO] Using 'UTF-8' encoding to copy filtered resources. > >> > > > [INFO] Copying 0 resource > >> > > > [INFO] [compiler:testCompile {execution: default-testCompile}] > >> > > > [INFO] No sources to compile > >> > > > [INFO] [surefire:test {execution: default-test}] > >> > > > [INFO] Surefire report directory: C:\Documents and > >> > > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war\target\surefire-reports > >> > > > ------------------------------------------------------- > >> > > > T E S T S > >> > > > ------------------------------------------------------- > >> > > > There are no tests to run. > >> > > > Results : > >> > > > Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 > >> > > > [INFO] [war:war {execution: default-war}] > >> > > > [INFO] Packaging webapp > >> > > > [INFO] Assembling webapp [OC4J_TNM_BE.war] in [C:\Documents and > >> > > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war\target\OC4C_TNM_BEWeb > >> > > > [INFO] Processing war project > >> > > > [INFO] Copying webapp webResources [C:\Documents and > >> > > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war/src/main/webapp/WEB-INF] > >> to > >> > > [C:\ > >> > > > cuments and > >> > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war\target\OC4C_TNM_BEWeb] > >> > > > [INFO] Copying webapp resources [C:\Documents and > >> > > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war\src\main\webapp] > >> > > > [INFO] Webapp assembled in [500 msecs] > >> > > > [INFO] Building war: C:\Documents and > >> > > > > Settings\xxxx\OC4J_TNM_BE\OC4J_TNM_BE.war\target\OC4C_TNM_BEWeb.war > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Building OC4C_TNM_BE ear > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > Downloading: > >> > > > > >> > > > >> > > >> > http://repo1.maven.org/maven2/myCompany/OC4J_TNM_BE.war/1.0/OC4J_TNM_BE.war-1.0.war > >> > > > [INFO] Unable to find resource 'myCompany:OC4J_TNM_BE.war:war:1.0' > >> in > >> > > > repository central (http://repo1.maven.org/maven2) > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [ERROR] BUILD ERROR > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Failed to resolve artifact. > >> > > > Missing: > >> > > > ---------- > >> > > > 1) myCompany:OC4J_TNM_BE.war:war:1.0 > >> > > > Try downloading the file manually from the project website. > >> > > > Then, install it using the command: > >> > > > mvn install:install-file -DgroupId=myCompany > >> > > > -DartifactId=OC4J_TNM_BE.war -Dversion=1.0 -Dpackaging=war > >> > > > -Dfile=/path/to/file > >> > > > Alternatively, if you host your own repository you can deploy the > >> file > >> > > > there: > >> > > > mvn deploy:deploy-file -DgroupId=myCompany > >> > > > -DartifactId=OC4J_TNM_BE.war -Dversion=1.0 -Dpackaging=war > >> > > > -Dfile=/path/to/file -Dur > >> > > > [url] -DrepositoryId=[id] > >> > > > Path to dependency: > >> > > > 1) myCompany:OC4J_TNM_BE.ear:ear:1.0 > >> > > > 2) myCompany:OC4J_TNM_BE.war:war:1.0 > >> > > > ---------- > >> > > > 1 required artifact is missing. > >> > > > for artifact: > >> > > > myCompany:OC4J_TNM_BE.ear:ear:1.0 > >> > > > from the specified remote repositories: > >> > > > central (http://repo1.maven.org/maven2) > >> > > > > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] For more information, run Maven with the -e switch > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > [INFO] Total time: 47 seconds > >> > > > [INFO] Finished at: Mon Sep 20 10:00:18 PDT 2010 > >> > > > [INFO] Final Memory: 17M/254M > >> > > > [INFO] > >> > > > > >> > > ------------------------------------------------------------------------ > >> > > > C:\Documents and Settings\xxxx\OC4J_TNM_BE> > >> > > > > >> > > > > >> > > > On Sat, Sep 18, 2010 at 7:25 AM, Stephane Nicoll > >> > > > <[email protected]>wrote: > >> > > > > >> > > >> It should work but your project's version should be something > like > >> > > >> 1.0-SNAPSHOT, not 1.0. > >> > > >> > >> > > >> That being said, it could be a thing as simple as a typo so > posting > >> > your > >> > > >> project somewhere would help. > >> > > >> > >> > > >> S. > >> > > >> > >> > > >> On Fri, Sep 17, 2010 at 11:46 PM, Jon Paynter < > [email protected]> > >> > > wrote: > >> > > >> > >> > > >>> Hi -- ive been tasked with looking to see if maven will work to > >> > replace > >> > > >> our > >> > > >>> current ant build. > >> > > >>> > >> > > >>> Since our company makes extensive use of j2ee and OC4J > components, > >> > that > >> > > >> was > >> > > >>> one of the first thigns I tackled after getting some basic > modules > >> to > >> > > >>> compile. > >> > > >>> > >> > > >>> In keeping with our existing ant build structure I setup the > >> > following > >> > > >> tree > >> > > >>> structure: > >> > > >>> OC4J pom.xml > >> > > >>> | > >> > > >>> |--- OC4J.ear > >> > > >>> | > >> > > >>> |--- OC4J.rar > >> > > >>> | > >> > > >>> |--- OC4J.war > >> > > >>> > >> > > >>> The ear is setup with a dependancy on the war file. > >> > > >>> If goto the top level folder and run: mvn compile -- all is > fine. > >> no > >> > > >>> errors. > >> > > >>> > >> > > >>> but when I goto the top level folder and run: mvn package > >> > > >>> I get an error when building the ear file saying it cant find > the > >> war > >> > > >> file: > >> > > >>> > >> > > >>> [ERROR] Failed to execute goal on project OC4J.ear: Could not > >> resolve > >> > > >>> dependencies for project cdrive:OC4J.ear:ear:1.0: The following > >> > > artifacts > >> > > >>> could not be resolved: cdrive:OC4J.war:war:1.0: Failure to find > >> > > >>> cdrive:OC4J.war:war:1.0 in http://repo1.maven.org/maven2 was > >> cached > >> > in > >> > > >> the > >> > > >>> local repository. Resolution will not be reattempted until the > >> update > >> > > >>> interval of central has elapsed or updates are forced. -> [Help > 1] > >> > > >>> > >> > > >>> > >> > > >>> I started this endevor using maven 2.2.1 but I had the same > >> problems > >> > > with > >> > > >>> ear generation. searching led me to a post back from 2007 where > >> > > somebody > >> > > >>> had the exact same problem, but there was no resolution posted. > I > >> > was > >> > > >>> hoping maven 3.0 would fix the issue, but it just gives > different > >> > error > >> > > >>> messages. > >> > > >>> > >> > > >>> > >> > > >>> So my questions are as follows: > >> > > >>> > >> > > >>> 1) Is there a better way to do this? -- if so it needs to scale > >> > well, > >> > > >> the > >> > > >>> project has about 20 OC4J components. > >> > > >>> 2) if not, how do I fix the dependancies so this will work? > >> > > >>> 3) if neither... will this be fixed in maven 3.0? > >> > > >>> > >> > > >> > >> > > > >> > > > >> > > > --------------------------------------------------------------------- > >> > > To unsubscribe, e-mail: [email protected] > >> > > For additional commands, e-mail: [email protected] > >> > > > >> > > > >> > > >> > > > > >
