What is current status of repositorytools-plugin ?
Hello, The question is in the title... -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Best practice for handling multi-modules version numbers
Hello again, I am wondering whether my question is: 1. obvious 2. silly 3. too specific :-) Isn't this something that lot of people are coping with everyday ? Is there something I should know about version management in multi-modules build ? I did already some refactoring using dependencyManagement at toplevel to remove duplication of version in dependencies of submodules. But I am still stuck with the issue of having to define 25 times the same version number. Do people mostly use release plugin in those circumstances ? Any feedback greatly appreciated, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Weird error using war overlays
Hello, We are running into a strange problem with the war plugin (v. 2.1-alpha-1). We are trying to use overlay between two webapps, both using jspc plugin to precompile jsps. To enable jspc, we need to add the following pom fragement: plugin !-- precompilation of JSPs -- groupIdorg.codehaus.mojo/groupId artifactIdjspc-maven-plugin/artifactId version1.4.6/version configuration target1.5/target source1.5/source encodingUTF-8/encoding /configuration executions execution idjspc/id goals goalcompile/goal /goals /execution /executions /plugin plugin !-- non standard definition of web xml (ie.generated) -- groupIdorg.apache.maven.plugins/groupId artifactIdmaven-war-plugin/artifactId version2.1-alpha-1/version configuration webXml${basedir}/target/jspweb.xml/webXml /configuration /plugin Please note this is added to the pluginManagement of a toplevel pom. Help greatly appreciated, of course :) Here is the stack rtace from mvn -e -X: [DEBUG] net.courtanet.b2b2c:b2b2c-presentation-webapp:war:1.1-SNAPSHOT (selected for null) [DEBUG] active project artifact: artifact = net.courtanet.b2b2c:b2b2c-presentation-front:war:1.1-SNAPSHOT:compile; project: MavenProject: net.courtanet.b2b2c:b2b2c-presentation-front:1.1-SNAPSHOT @ W:\work\b2b2c\presentation\front\pom.xml (selected for compile) [DEBUG] junit:junit:jar:3.8.1:test (selected for test) [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-war-plugin:2.1-alpha-1:war' -- [DEBUG] (s) archiveClasses = false [DEBUG] (s) cacheFile = W:\work\b2b2c\presentation\webapp\target\war\work\webapp-cache.xml [DEBUG] (s) classesDirectory = W:\work\b2b2c\presentation\webapp\target\classes [DEBUG] (s) filters = [] [DEBUG] (f) outputDirectory = W:\work\b2b2c\presentation\webapp\target [DEBUG] (f) primaryArtifact = true [DEBUG] (s) project = MavenProject: net.courtanet.b2b2c:b2b2c-presentation-webapp:1.1-SNAPSHOT @ W:\work\b2b2c\presentation\webapp\pom.xml [DEBUG] (s) useCache = true [DEBUG] (f) warName = b2b2c-webapp [DEBUG] (s) warSourceDirectory = W:\work\b2b2c\presentation\webapp\src\main\webapp [DEBUG] (s) webXml = W:\work\b2b2c\presentation\webapp\target\jspweb.xml [DEBUG] (s) webappDirectory = W:\work\b2b2c\presentation\webapp\target\b2b2c-webapp [DEBUG] (s) workDirectory = W:\work\b2b2c\presentation\webapp\target\war\work [DEBUG] -- end configuration -- [INFO] [war:war] [INFO] Packaging webapp [INFO] Assembling webapp[b2b2c-presentation-webapp] in [W:\work\b2b2c\presentation\webapp\target\b2b2c-webapp] [INFO] Processing war project [DEBUG] + index.jsp has been copied. [DEBUG] + WEB-INF/web.xml has been copied. [DEBUG] + WEB-INF/classes/jsp/index_jsp.class has been copied. [DEBUG] Processing: b2b2c-presentation-front-1.1-SNAPSHOT.war OverlayPackagingTask performPackaging overlay.getTargetPath() null[INFO] Processing overlay[ id net.courtanet.b2b2c:b2b2c-presentation-front] [INFO] Unpacking overlay[ id net.courtanet.b2b2c:b2b2c-presentation-front] [INFO] Expanding: W:\work\b2b2c\presentation\front\target\b2b2c-front.war into W:\work\b2b2c\presentation\webapp\target\war\work\net.courtanet.b2b2c\b2b2c-presentation-front [DEBUG] expanding META-INF/maven/net.courtanet.b2b2c/b2b2c-presentation-front/pom.properties to W:\work\b2b2c\presentation\webapp\target\war\work\net.courtanet.b2b2c\b2b2c-presentation-front\META-INF\maven\net.courtanet.b2b2c\b2b2c-presentation-front\pom.properties [DEBUG] expanding META-INF/maven/net.courtanet.b2b2c/b2b2c-presentation-front/pom.xml to W:\work\b2b2c\presentation\webapp\target\war\work\net.courtanet.b2b2c\b2b2c-presentation-front\META-INF\maven\net.courtanet.b2b2c\b2b2c-presentation-front\pom.xml [DEBUG] expanding META-INF/maven/net.courtanet.b2b2c/b2b2c-presentation-front/ to
Re: Multi-module Site menu
Erik Husby [EMAIL PROTECTED] writes: What would be the best way to generate the module menu? Hello, There seems to be complex interactions between site generation and various parts of the poms. Something I have seen worked is: - set URL for all modules to the right 'final' one, so that they all share a common prefix - use site:stage to check your installation HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Javascript support
Hello, I would like to know what is the current status/plans of the various javascript handling plugins out there. Few months ago there has been some discussions on this topic and some talks about merging projects. I am currently using jstools plugin, with jsunit for test execution, and would like to know if someone has done work on verifying or compiling the javascript, using eg. Rhino or other parser to ensure syntactic correctness of javascript. Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Javascript support
Manos Batsis [EMAIL PROTECTED] writes: Is there something you need beyond a jslint report for syntax errors/best practices in general? You can get a jslint report from jstools see [1] for an example. Nicolas' javascript plugin over at codehaus also offers jslint checking. Thanks for your answers (yours and Nicolas): - JSlint reports are not really useful and it seems that the parser used is quite old, isn't it ? I need to parse javascript 1.7 or 1.8 (eg. what's used in Mozilla) and jslint reports false negative with such code - I use personally jsunit, with integration in surefire: I can generate something that is understandable by surefire plugin which generates a nice output report for my unit tests. To do this, you need to hack a bit jsunit, I have provided some code I think in the past but could not remind how/when/where. - What I was thinking about is something along the following: read all js files with rhino to have an approximate compile phase that would check obvious errors that otherwise go unnoticed in javascript (eg. undefined variables/functions, incorrect spellings...) - I would like to have a xpi package type. I plan to work on something soon, but if someone already did it... - I don't know how to handle dependencies really. I would like to use them like in java,so that declared dependencies in the pom are available both at compile and runtime. That could imply doing some magic with unpacking/classpath to run unit tests. best regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [m2] Differences development / Deployment
Karl Heinz Marbaise [EMAIL PROTECTED] writes: Hi there, i have got a little problem (or misunderstanding) with Maven 2: I have configured an entry for my issueManagement with an URL in the POM. Ok...so far so good... But i would like to have different URL's if i'm working on my development machine (local) and if i deploy/release a state to the internet to make it available to other people... e.g. the following entry is needed if i release/deploy a state of my work: issueManagement systemTracking/system urlhttp://supose.soebes.de//url/issueManagement and the following entry is needed if i'm working on my developement machine (LAN) issueManagement systemTracking/system urlhttp://svn.traveler/supose//url/issueManagement Does there exist a good way to handle such kind of situation ? Thanks in advance for your help A variable with different definitiosn in different profiles are an obvious candidate. According to http://maven.apache.org/guides/introduction/introduction-to-profiles.html, the issueManagement tag is not supported directly with profiles. HTH Kind regards Karl Heinz Marbaise -- SoftwareEntwicklung Beratung SchulungTel.: +49 (0) 2405 / 415 893 Dipl.Ing.(FH) Karl Heinz MarbaiseICQ#: 135949029 Hauptstrasse 177 USt.IdNr: DE191347579 52146 Würselen http://www.soebes.de -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [m2] Filtering web.xml?
Hello, I had similar problem with a webapp I developed few months ago, so I used this war filtering feature to add build number and deploy time and other informations to jsp files as comment tags filtered by maven. Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [m2] Filtering web.xml?
Allen, Daniel [EMAIL PROTECTED] writes: I'm building a web application (packaging WAR), and I need to run the web.xml file through a filter to set certain configutation values. I tried adding it to a resource tag, but that causes Maven to make a copy of it and put it in WEB-INF/classes subdirectory with all of the rest of the resources. I tried setting targetPath to WEB-INF, but then Maven creates WEB-INF/classes/WEB-INF, and puts it in the deeper of the two. I expect that this is because the phase where the the resources tag is processed is before the phase where the WAR file (and thus the WEB-INF directory I wish to target) is created. I'm guessing the generate-sources and package phases, respectively? Hello, The war plugin has configuration options for defining and filtering webResources. Check http://maven.apache.org/plugins/maven-war-plugin HTH, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Using maven-surefire-report-plugin
Hello, I ran into some problem using maven-surefire-report-plugin. I want to use this plugin to format a report which is custom generated by another plugin. I did the following: ?xml version=1.0 encoding=UTF-8? project xmlns=http://maven.apache.org/POM/4.0.0; build plugins plugin groupIdnet.courtanet/groupId artifactIdmaven-benefit-mozunit-plugin/artifactId configuration testFile${basedir}/../tests/core/testFile /configuration /plugin plugin artifactIdmaven-surefire-report-plugin/artifactId /plugin /plugins /build /project but nothing get generated with $ mvn site The following doesn't work either: ?xml version=1.0 encoding=UTF-8? project xmlns=http://maven.apache.org/POM/4.0.0; build plugins plugin groupIdnet.courtanet/groupId artifactIdmaven-benefit-mozunit-plugin/artifactId configuration testFile${basedir}/../tests/core/testFile /configuration /plugin /plugins /build reporting plugins plugin artifactIdmaven-surefire-report-plugin/artifactId /plugin /plugins /reporting /project When I do $ mvn surefire-report:report My HTML report get generated but without meaningful decoration. I also tried configure surefire-plugin to use goal report-only, without success. I would be happy if someone could shed some light on this small issue. Best regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Producing 2 JAR's with exclusive content
Richard Gal [EMAIL PROTECTED] writes: Hello Could somebody help me with the following problem: I have a project that uses some native libraries (dll's). I would like to create 2 JAR artifacts out of this project - one with the Java classes of the project and - another with nothing else but the native libraries. Hello, The usual maven way is: 1 artifact = 1 project So a simple solution for your problem is: 1. a project with your java classes 2. a project with your native lib eg. in src/main/resources 3. a toplevel project with these 2 As modules HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Dependency between projects....
Hello, May I suggest that you break circular dependency ? Circular dependency usually means that some module is waiting to be born, and is badly handled by most build systems I think (at least most build systems I know). As for tagging, it depends on the scm pom tag and maven-release-plugin configuration: if things are done only in parent pom, the modules hierarchy is used, otherwise local configuration is used. regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Remote repository with self signed cert
Hello, I managed to deploy/download from https sites with client side authentication following this guide: http://maven.apache.org/guides/mini/guide-repository-ssl.html Maybe you could provide more information on your configuration (pom + settings) ? Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Packaging HTML/JavaScript files into WAR from outside project
When building the java webapp, I'd like some HTML and JS files to be packaged into the WAR, but those files live in the html and javascript directories instead of in java/src/main/webapp. What's the appropriate plugin to use in this case? Hello, Don't know if it's possible, but the preferred maven way I think would be to package them into separate maven projects, of war type, and use the implicit mechanism of war overlays: just add wars as dependencies in your main war and you'll get everything packed in. Alternatively, you could use maven-dependency-plugin (http://maven.apache.org/plugins/maven-dependency-plugin/) to retrieve your artifacts and unpack them if you don't/cannot pack them as war. Finally, you can add supplementary web-resources I think, to the war plugin, that will get packaged with the artifact (see http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#webResources). Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven Variable to take the system date?
Hello, You could use http://commons.ucalgary.ca/projects/maven-buildnumber-plugin/introduction.html HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven Variable to take the system date?
Hello, You can use this plugin without references to any SCM whatsoever: http://commons.ucalgary.ca/projects/maven-buildnumber-plugin/howto.html Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven Variable to take the system date?
Hello, The plugin is located, as expected, on the central repository. (eg. http://repo1.maven.org/maven2/org/codehaus/mojo/buildnumber-maven-plugin/) What is your problem ? Regards -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Continuum and company pom
Hello, According to the page you point at: Note : the pom is searched in central repository and the repositories available for the active profiles from you $user.home/.m2/settings.xml So you should define somewhere a settings.xml file for the continuum user (or better a global settings.xml file) with the repository your POM is deployed in. It is however strange that it does not use its local repo for finding the POM. HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven site plugin for parent of multimodule project behaves differently in non-recursive mode
Olivier Dehon [EMAIL PROTECTED] writes: Since Continuum builds the parent project in non-recursive mode, this is a bit annoying, as all the parent sites deployed via site-deploy from Continuum have broken links to their children modules. Is there a fix or a workaround? HEllo, I had similar problems (different behavior in non-recursive and recursive mode) and my workaround was to create a specific profile for continuum execution. More specifically, my problem was due to ../module1 in module references that generated bad links in site generation. I created a profile with modulemodule1/module tags so that top-level site generation works OK, even without modules being generated in the same run. May be you could do the same with the url tag ? Note that url tag cannot be redefined in profile, but your property can be. HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: a question
michel [EMAIL PROTECTED] writes: Hello, I have just installed Maven 2.0.8 on Windows XP SP2. Commands do not seem to work-- and I cannot find the response in the doc. It is my first installed version of Maven, and I don't use a proxy... Please could you help me ? Hello, It sometimes happen that maven tries to download an artifact, fails to do so, then leaves the local repository in such a state that later downloading is prevented. May be you can try removing the dircetory org/apache/maven/plugins/maven-help-plugin from the repository. HTH -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Unit test strategy for testing a java.io.File in maven2?
Thanks for the info about basedir property, I was not sure of this. REgards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Unit test strategy for testing a java.io.File in maven2?
HEllo, Heinrich Nirschl [EMAIL PROTECTED] writes: I seem to miss something, why does new File(test/resources/myImages) not work? Because you can never be sure that the current directory is the root directory of your project. You can define environment variables in the surefire plugin (sysProperties), so you could say something like: sysProperties property nametest.resources.dir/name value${build.testOutputDirectory}/value HTH, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using resources from a jar file
Hello, If you extract your XML files into target/classes, this may mean that you want to load them through your classpath loading mechanism. You could use the jars as is in your final assembly/application,adding them to your loaded classpath. That could simplify your pom. But there may be other reasons I am not aware of :) My 50 cts -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: PluginManagement and reporting configuration
Dennis Lundberg [EMAIL PROTECTED] writes: Unfortunately build/pluginManagement only works for build plugins and not for reporting plugins. See http://jira.codehaus.org/browse/MNG-1931 Thanks Dennis for your quick answer. The issue is quite old indeed :) and I should have ran into it earlier. Regards, -- Arnaud Bailly, PhD OQube - Software Engineering http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [m2] activeProfile overriding
Mick Knutson [EMAIL PROTECTED] writes: Is there a way to activate a profile only if there was not one specified on the command line? ActiveByDefault seems to always be active no matter what. I vaguely recall that you could use -P+profile et -P-profile to forcefully include/exclude profiles. Is this something I dreamt of (I cannot reproduce it in 2.0.7)? -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: QTP code coverage plugin
Vishal Pahwa [EMAIL PROTECTED] writes: Hi at the moment we use Quick Test Pro by Mercury to perform our automated/regession testing as well as we are using maven2.0.6. We now have need to include Code Coverage for these tests. We need know know how many lines of actual code are been hit while these tests are been run over night. So could anyone tell me which maven plugin would fulfill the requirement . Regards Vishal You could use cobertura which is open-source, based on jcoverage: http://mojo.codehaus.org/cobertura-maven-plugin/ Or you could use clover which is not open-source: http://www.atlassian.com/software/clover/ Best regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Sonatype Book and Repository Configuration
Hello Greg, Setting up webdav in Apache (2.2) is kind of trivial: DavLockDB /var/lock/dav/lock Alias /maven2 /var/www/maven2 Directory /var/www/maven2 Dav On AllowOverride None /Directory That said, this is a maven list and your question is rather httpd specific. Did you have a look at /usr/share/doc/apache2 for example on a debian like linux system, or better http://httpd.apache.org ? If your question is about configuring webdav in maven, this is covered http://maven.apache.org/wagon/ in great details ;-). More seriously, you just add wagon-dav extension to your pom and you can use dav:// urls. REgards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Generating Test Sources
This is not generally a good idea, as pointed out by Brandon, to p ut generated things under src/. The basic contract, I think,is that src/ is immutable and never written to by maven: everything is put in build directory; Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
jsunit integration
Hello, I am working on integrating jsunit (http://www.jsunit.net) into maven. I would like to share some thoughts and request some advices avout the best way to do that integration. Right now, I have a sample (maven) project that executes jsunit tests from maven and generates reports. What I did is: - modify jsunit java server test cases to generate JUnit test results from jsunit test results: That way javascript unit tests results and error gets integrated seamlessly into surefire's reports - package the java server as an artifact - encapsulates all tests in a single JUnit tests cases that configures things and laucn jsunit's StandaloneTest class Some problems are: - test pages contains hardwired and absolute references to everything (ie. scripts and jsunti base directory) which is BAD ! - you need to install jsunit somewhere locally - you need to modify and track files by hand outside of the scope of the project - test server is started once for each test execution or event each JUnit test class execution which can be a performance bottleneck for large and/or deep projects What I want to do is: 1. package jsunit runner and support files as a jar or zip 2. create a plugin tbound to process-test-sources that would unpack the jsunit site in target/jsunit-runner 3. configure generically test server/runners to have target/jsunit-runner as their root site. This implies that javascript source files, test files and test pages be moved to this directory too... Ideally, I would rather serve everything from a servlet launched through jetty with the adequate maven plugin but this would require heavy changes to jsunit java server code. Or may be not... Comments and ideas are welcomed, regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: jsunit integration
); } return bos.toString(); } } You then just need to modify StandaloneTest (or any other test casse btw)with: @Override public void run(TestResult result) { try { setUp(); testStandaloneRun(); tearDown(); BrowseResultToJUnitResult res = new BrowseResultToJUnitResult( result); for (BrowserResult br : this.testRunResult.getBrowserResults()) res.addBrowserResult(br); } catch (Throwable e) { e.printStackTrace(); } } public void testStandaloneRun() throws Exception { testRunManager.runTests(); this.testRunResult = testRunManager.getTestRunResult(); } This is far from perfect: I should encapsulate each browser execution in a TEstSuite to have some grouping effect, but you got the idea. BTW, there are hardcoded paths in the mojos code. Is this ok? for ( int i = 0; i browsers.length; i++ ) { if ( new File( browsers[i] ).exists() ) { continue; } if ( firefox.equalsIgnoreCase( browsers[i] ) ) { browsers[i] = c:/program files/Mozilla Firefox/firefox.exe; } if ( iexplorer.equalsIgnoreCase( browsers[i] ) ) { browsers[i] = c:/program files/internet explorer/iexplore.exe; } } Nico. 2007/10/22, Insitu [EMAIL PROTECTED]: Hello, I am working on integrating jsunit (http://www.jsunit.net) into maven. I would like to share some thoughts and request some advices avout the best way to do that integration. Right now, I have a sample (maven) project that executes jsunit tests from maven and generates reports. What I did is: - modify jsunit java server test cases to generate JUnit test results from jsunit test results: That way javascript unit tests results and error gets integrated seamlessly into surefire's reports - package the java server as an artifact - encapsulates all tests in a single JUnit tests cases that configures things and laucn jsunit's StandaloneTest class Some problems are: - test pages contains hardwired and absolute references to everything (ie. scripts and jsunti base directory) which is BAD ! - you need to install jsunit somewhere locally - you need to modify and track files by hand outside of the scope of the project - test server is started once for each test execution or event each JUnit test class execution which can be a performance bottleneck for large and/or deep projects What I want to do is: 1. package jsunit runner and support files as a jar or zip 2. create a plugin tbound to process-test-sources that would unpack the jsunit site in target/jsunit-runner 3. configure generically test server/runners to have target/jsunit-runner as their root site. This implies that javascript source files, test files and test pages be moved to this directory too... Ideally, I would rather serve everything from a servlet launched through jetty with the adequate maven plugin but this would require heavy changes to jsunit java server code. Or may be not... Comments and ideas are welcomed, regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Weird problem with running Junit 3 tests
Problem solved. Apologies for the noise... -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Weird problem with running Junit 3 tests
Hello, I have an annoying problem with running test cases. I have the following test class: public class JsTest extends StandaloneTest { public void testXXX() { ... } } StandaloneTest extends junit.framework.TestCase. I got the following results: --- T E S T S --- Running oqube.js.rpn.JsTest Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.03 sec When I make JsTest a direct child of TestCase, it works fine. I have skimmed through the Jira issues and nothing seems related. I have also skimmed throught surefire source code and JUnitTestSet seems to correctly collect subclasses of TestCase. What's wrong with that ? Thanks in advance, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Testing Help
Hello, here is a list of refs about testing with maven. The first one is specifically targeted at maven developers. http://maven.apache.org/developers/committer-testing-plugins.html http://wiki.rodcoffin.com/index.php?title=Maven_Integration_Testing http://docs.codehaus.org/display/MAVENUSER/How+to+re-use+test+code+between+projects http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing http://docs.codehaus.org/display/MAVENUSER/Maven2+And+TestNG.Example+pom.xml http://docs.codehaus.org/display/MAVEN/Testing+Strategies HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Fw: Suggested best practice for arranging projects
Hello, Not sure about point 2. but what about collecting the wsdl and API part of the web services in a single project that will be depended upon by the other ones ? This is the standard approach for non J2EE projects and more generally an application of the old segragation of interface and implementation rule. Regards, PS: maybe I missed the point. The answer seems so obvious... -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven JavaScript Plugin 1.2 released
It works ! Thanks . -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven JavaScript Plugin 1.2 released
Hello, When trying to build it from sources, I got: [INFO] Scanning for projects... [INFO] [INFO] Building MobilVox Maven JavaScript Plugin [INFO]task-segment: [install] [INFO] Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-scm-plugin/1.0-beta-2/maven-scm-plugin-1.0-beta-2.pom 1K downloaded Downloading: http://repo1.maven.org/maven2/org/apache/maven/scm/maven-scm/1.0-beta-2/maven-scm-1.0-beta-2.pom 4K downloaded Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-scm-plugin/1.0-beta-2/maven-scm-plugin-1.0-beta-2.jar 21K downloaded [INFO] [plugin:descriptor] [INFO] Using 2 extractors. [INFO] Applying extractor for language: java [INFO] [ERROR] FATAL ERROR [INFO] [INFO] syntax error @[317,10] in file:/old/home/nono/soft/javascript/maven-js-plugin/src/main/java/com/mobilvox/ossi/mojo/js/compression/JsCompressor.java [INFO] [INFO] Trace com.thoughtworks.qdox.parser.ParseException: syntax error @[317,10] in file:/old/home/nono/soft/javascript/maven-js-plugin/src/main/java/com/mobilvox/ossi/mojo/js/compression/JsCompressor.java at com.thoughtworks.qdox.parser.impl.Parser.yyerror(Parser.java:504) at com.thoughtworks.qdox.parser.impl.Parser.yyparse(Parser.java:610) at com.thoughtworks.qdox.parser.impl.Parser.parse(Parser.java:488) at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:296) at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:312) at com.thoughtworks.qdox.JavaDocBuilder.addSource(JavaDocBuilder.java:308) at com.thoughtworks.qdox.JavaDocBuilder$1.visitFile(JavaDocBuilder.java:365) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:43) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.walk(DirectoryScanner.java:34) at com.thoughtworks.qdox.directorywalker.DirectoryScanner.scan(DirectoryScanner.java:52) at com.thoughtworks.qdox.JavaDocBuilder.addSourceTree(JavaDocBuilder.java:362) at org.apache.maven.tools.plugin.extractor.java.JavaMojoDescriptorExtractor.execute(JavaMojoDescriptorExtractor.java:477) at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:69) at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:99) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125) at org.apache.maven.cli.MavenCli.main(MavenCli.java:272) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.Delegating -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail:
Re: Maven JavaScript Plugin 1.2 released
Adam Altemus wrote: Can you give me some information on your environment? I'm pretty sure I know what the error is but, I need to make sure. Looks like a java 1.4 environment trying to compile java 1.5 to me ;-) Manos hello, This problem has sometimes bitten me in the past and is due to qdox library not being able to handle java5 language constructs. I think the problem may depends on the qdox version used which itself depends on the maven-plugin-plugin used. Or so I believe... $ java -version java version 1.6.0 Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode) $ mvn -v Maven version: 2.0.6 Regards -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Improving Maven Site Docs
Hello, I would like to throw my 50cts in the discussion, drawn from my experience teaching maven and consulting about software quality and SDP in general, so-called maven expert - not that I claim the title anyhow :-). The first piece of information that is missing, IMHO, is a bird's eye view of how maven is working, the underlying concepts and best practices behind it, which is often summarized as convention over configuration. It is difficult, as a teacher, to make people grasp the workflow of using maven: They usually stick to a procedural view (eg. à la Ant/make/scripts) which is obviously the wrong way as maven is not designed that way. I very recently gave a four days course on maven to experienced developers and PMs in a big company which develops a lot of software. The overall tone was that of Patrick's post: 1) maven looks great, but documentation, beyond Hello world and below plugin development is poor/badly organized; 2) it is difficult to have common tasks (eg. moving files around, knowing which dependencies are used and can be excluded...) done quickly; 3) XML sucks. Let's put 3) aside for now on. When you explain the inner workings of maven: dependency management, reactor, plugins, projects' structure, repositories (and those dreaded snapshots), standard phases, the rest - profiles, filtering, testing - sounds generally clearer: - one can cleanup the mess in 1), - it becomes obvious why 2) happens and you can start thinking the maven way. I did a small exercise. I asked the attendants to provide me with a sample project they were currently working on and we worked together on mavenize it. We started from a custom ant-based built project, where the build.xml is generated to 3500 lines of ant from a project dependency description (ie. dependencies) and which amounted to 300kLoc of java. We ended up with a plan for mavenization that emphasized the strengths of maven: eeasy dependency management, parameterized assemblies for various build targets, simple POMs with small grained components breakdown... The net result was really convinced (at least on a whiteboard) and helped the audience improve their understanding of maven. Based on this and other experiences, I could suggest the following actions to help improve maven's documentation and so called 'user experience'. Note that these proposals are partial and I also think that improving UI of maven's sites would also help. 1. Keep a getting started or maven for dummies section prominent on web site 2. Add in second position a How it works document, with highilights of the implicit assumptions about Software Development Process behind maven 3. Add in third position a Transitionning from Ant/make/whatever document, with a concrete example of a project's transformation 4. Add a Pros and Cons section that would highlight what is easy and what is hard in maven To address point 3) above, I definitely think that providing some sort of simple language beside XML to defines poms would be great: Although XML is widely known, it is not widely loved and tends to create cluttered POMs. My 50 cts, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Using maven for JavaScript projects
Hello, Just jumping in to show my interest. I have started working on tool for javascript analysis based on jslinker, a somewhat dead or zombie project in dojo. And of course, I want to integrate it with maven (I started by mavenizing jslinker which is quite a mess). As there seems to be some interest in providing some javascript tool for maven, I would be happy to contribute ideas and time to this. As of now, I modified the jslinker parser to handle javascript 1.7 constructs. There are some tools in jslinker that I want to investigate, and my first serious objectives would be a metrics tool: McCabe complexity on functions, sloc count per function/file/directory, coupling (??)... Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Why Maven is Hard?
Lally Singh [EMAIL PROTECTED] writes: On 9/27/07, Wayne Fay [EMAIL PROTECTED] wrote: On 9/26/07, Tomasz Pik [EMAIL PROTECTED] wrote: Example - please, try to find out how to skip executing of tests during build starting from http://maven.apache.org ot Answer is: you never ever skip executing tests ;-) /ot -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Replacing Proprietary Build System With Maven
B API (B-I) depends on artifact A1. B implementation (B-P) depends on the B API (obviously) and transitively on artifact A1. C API (C-I) does not depend on anything. But C implementation (C-P) depends on artifact A2 as well as APIs for B (B-I) and C (C-I) and transitively on artifact A1. Running of the C implementation tests also has a dependency on B-P but compiling of the tests does not. I can easily create a JAR for B and C (I wrote a little plugin that aggregates the classes / resources from children into the parent and then use normal plugins to package it up). The problem is sorting out the dependencies. In the above example the aggregated JAR for B should be dependent on A1 and the aggregated JAR for C should be dependent on A2 and the aggregated JAR for B. Unfortunately, I cannot see how I can modify the dependencies on the fly in order to produce that result. What I would like to do is create an assembly from the aggregated JARs and have that assembly automatically contain the transitive dependencies, e.g. in the above example I would like an assembly with B, C, A1 and A2 but not B-I, B-P, C-I or C-P. If I cannot sort out the dependencies then I lose one big advantage of Maven over out build which is transitive dependency support. The above approach will give me compile time protection against using implementation classes directly and OSGi will give me runtime protection. But it is not perfect because if someone compiles against the aggregated JAR then they could still use the implementation classes even though it would fail at runtime. If the above is not possible then I was wondering whether there was any tool out there that would detect when classes were using 'implementation classes', e.g. by marking API packages with a Java 1.5 annotation and then doing some form of byte code analysis to detect whether a class is using non API classes from other artifacts? If I resummarize, what you want is that building the whole project creates a bundle containing B, C and their transitive dependencies, but not the submodules of B and C. I am pretty sure assembly+dependency could do the trick. Give me a little bit time (one or 2 days) and I will send you a skeleton project doing this (or I will confess miserably my incompetence :)). Or maybe you have that skeleton, a stripped/anonymized version of your project to start with ? Or someone else on the list already has the answer... Best regards, --- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Improving Maven Site Docs
Lee Meador [EMAIL PROTECTED] writes: If XML is the problem for Maven, why is it not for Ant. Can anyone claim that a makefile's syntax is any easier to understand? In addition, make isn't procedural or sequential and that didn't, back in the day, generate loads of comments. It's not that you really were arguing the pro side of those arguments, But IMO the arguments about how 1) XML is a pain and 2) Maven is not procedural are not truly problems but for some reason they bother people in the context of whatever is really bothering people. (I don't claim to know what that is but it seems to exist.) As you have noted, I did not argue about the truthfulness of the arguments about XML's nature and maven's underlying process. I just noticed that: 1. people - or at least some of them - I have in my training sessions generally find it painful to wirte a pom by hand. I suspect they also find it painful to write an ant script by hand... 2. they have a hard time understanding all the magic behind $ mvn install when they are used to $ ant all or $ make all. In the latter case, they can track in the build file the sequence of build procedures undertaken, while in the former, everything is built-in in the plugin/lifecycle binding. What I was considering to solve this marketability issues is: 1. wrap maven's pom in some nicer language, maybe something vaguely looking like rake or scons script. For example, a minimal POM would look like: id=toto:tutu:1.0 dependencies=junit:junit:3.8.1,mygroup:mylib:[EMAIL PROTECTED] Of cours, configuring plugins would clutter things up but you get the idea. My underlying assumption about this is that maven may be wrapped as some simple functional language. 2. output the build plan at the start/end of the execution of maven. Hudson does a nice trick when building a project, it wraps MavenPluginManager to display all executed mojos. Surely the build plan features of maven2.1 would give better output. And if you want my personal feeling, I think that XML really sucks as a way for human to write something, whether for ant, maven, xslt or anything else and exists just because the technology for manipulating easily small languages is not widespread or widely available. But of course, all this is my own small point of view. YMMV... Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: problem deploying snapshots
Hello, This is normal maven behavior for snapshots deployment: each snapshot is deployed with a unique version number. The metadata reflects this and defines the lates snapshot so that when you ask for foo:bar:1.0-SNAPSHOT you really get foo:bar:1.0-2342344234665.2423. I think you can change this behavior by setting uniqueVersionfalse in the snapshotRepository section of you distributionManagement. See http://maven.apache.org/ref/current/maven-model/maven.html#class_snapshotRepository BTW, this question as been asked and answered already today... HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: unit-testing of code-generating maven plugin
Thomas Fischer [EMAIL PROTECTED] writes: Hi Arnaud, Thanks for you suggestion. Do you integrate the execution of the integration test module in the build process of the plugin itself ? In my current solution, if the code generated by the plugin cannot be compiled or fails to do what it should, the plugin is not installed when mvn deploy is called. I'd like to retain this if possible (I have come to appreciate no-brain approaches, they also work when time is short) No, I do not run IT as part of module build as this would entails a sort of chicken and egg problem ! There exists solutions such as plugin-testing plugin that can stage/unstage a plugin into repo so that IT can find them. But I'd rather take the simple course of using the maven-verifier API to remove the plugin from local repo if tests fails. I have never used this approach myself, the idea being that install works means UT works and IT works means deploy works so you'd run deploy iff IT passed. Take a look at the maven-verifier API, it is simple, straightforward and useful, without dependencies on anything else. Regards, BTW: this is what is used for IT maven itself. -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Replacing Proprietary Build System With Maven
Paul Duffin [EMAIL PROTECTED] writes: I have been looking at having separate poms for API and implementation and bundle. I can build the bundle (just think JAR if you don't know what that is) by aggregating the classes/resources from the API and implementation into one directory and then using standard plugins to create it. The problem I have with this is that while building I want to have dependencies on the API poms (as the Java compiler does not know about OSGi bundle exports) but when installing and running I want to have dependencies on the bundle. Does anyone else use this sort of structure, if so how do you manage this in Maven ? Is there anyway to do what I want ? Hello, I am not sure I fully understand your problem, and I am not familiar with OSGi bundles, so let me rephrase it: - you have a component C that is broken down into an interface I and an implementation P. You only need I at compile time but need P at runtime. - from a maven perspective, this would mean that you would have astructure like that -- C +-- pom.xml | +-- I +-- pom.xml +-- src +-- P +-- pom.xml +-- src +-- src/main/assembly ... Then I would configure C to build: - I as a standard artifact deployed in a public repo: Other projects would then be allowed to depend on it - P as a standard artifact but deployed in a private repo not available outside the team producing it - C as a pom and with an OSGi bundle (what I call assembly above) deployed and available publicly. Then client components/programs could depend on I for compiling and on C's bundle for running, using a profile. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Resource relative paths in test cases...
James Depaul [EMAIL PROTECTED] writes: Hello - I'm working on maven-izing a project that's composed of three modules. I have the POMs configured with proper dependencies. Compile all works now and now I'm tying to execute the Test Cases and have some problems - it has to do with how Maven resolves the resource locations... The test cases are using DBUNIT framework to insert data into the db before running. Inside the getDataSet() method in test case I need to create an InputStream to the XML file that contains the test data for the run. The code implementation that I have that works perfectly in Eclipse is this: protected IDataSet getDataSet() throws Exception { String fileName = cods_user_auth-seed.xml; // data file URL rootPath = UserAdminUserTest.class.getResource(/data/ + fileName); // root path location + specific location of the file System.out.println(rootPath= + rootPath); return new FlatXmlDataSet( new FileInputStream(rootPath.getFile())); // get the file as InputStream } This assumes cods_user_auth-seed.xml is located at src/test/resources: InputStream xml = getClass().getClassLoader().getResourceAsStream(/data/ + fileName); return new FlatXmlDataSet(xml); HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem compiling project with WAR dependency
cdesaint [EMAIL PROTECTED] writes: Hi All, I've got a couple of projects, 1 is a WAR project, another is a JAR project which needs to depend on the java classes in the WAR. Normally, you wouldn't do this, but in this case, the JAR project is for unit tests and wants to be able to instantiate the Actions in the WAR project. Couldn't you just split your war ? If you need to have a separate artifact for unit testing, then go ahead, the code is telling you it wants to be split. Modules are cheap in maven. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: unit-testing of code-generating maven plugin
Thomas Fischer [EMAIL PROTECTED] writes: Hi all, we have a maven plugin which generates java code, and we would like to unit-test it. One obvious test for such a plugin is to let it generate some code, compile that code, and unit-test the generated code. For this, the following steps need to be executed: 1) compile the plugin mojo 2) compile the test case which starts the plugin mojo in order to generate code 3) execute the test case which starts the plugin mojo in order to generate code 4) compile the generated code 5) compile the test cases which test the generated code 6) execute the test cases which test the generated code Hello Thomas, IMHO, this is not unit testing but functional testing of your plugin's behavior. In such cases, I usually follow the simple approach of having a separate integration test module that depends on the plugin and executes test projects using maven-verifier. There are other options available at http://maven.apache.org/developers/committer-testing-plugins.html but I did not find them very satisfying (quite brittle, depends on snapshots that depend on things...). I have learnt to favour large number of modules with small poms: The dependency mechanism handles the scheduling of plugins executions better and more clearly than within a pom. I would like to know BTW if this was intended in maven's design or just a side effect. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Duplicate class problem
Hello, I have a small and interesting problem I would like to solve. I have 2 projects A and B. - A contains a jjtree source file that is used to generate AST nodes and a parser - B uses A *but* also rewrites some of the AST nodes thus providing its own classes. When I package everything, here is what happens: - A compiles OK but then B's compilation fails becasue the compiler uses classes from A instead of their rewritten form - if I exclude offending classes in A, of courses it does not compile. I could use maven-jar to exclude specific classes from packaging but exclusion does not work according to recent posts. Help appreciated, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Some questions about site generation
Bryant Harris [EMAIL PROTECTED] writes: Hi, So I've gotten pretty far with Maven (to the point where I'm liking it more and more). It's a slow slog, wading through articles and documentation, but I'm starting to like it. I've got a few questions on site generation 1. How do I specify the location of my license file for site generation. I assume this is just a tag in my POM like most of the other site related bits. There is a tag licences in the POM http://maven.apache.org/ref/current/maven-model/maven.html#class_license 2. Can I supply HTML formatted text for my description text in my POM that is used to form the about section of the website? It seems like I can only use unformatted text. Maybe there's an alternate tag to an external HTML snippet? Did you try using ![CDATA[ ... ]] section ? 3. To include clover code coverage reports in my site generation, I always need to run clover:instrument goal first. (I've already got plugin artifactIdmaven-clover-plugin/artifactId /plugin in my pom to include the report). Is there a way I can specify this as an added task (still using ant terminology) for site generation so I don't need to include the instrument goal whenever I want to create my site? Not sure of this issue but instrumentation and report generation are two different things: - when you run mvn site, it does compile,test or does anything that pertains to the normal (ie. default lifecycle). AFAIK, clover's reporting scheme follows standard convention and the usual thing it does is just read generated data from previous test runs and generate the report - if you still want your plugin to run as part of a site build, you could use the following syntax: build plugins plugin artifactIdmaven-clover-plugin/artifactId executions execution phasesite/phase goals goalinstrument/goal/goals configuration HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Subversion SCM plugin and --non-interactive parameter
Paul MERLIN [EMAIL PROTECTED] writes: Hi all, I'm trying to use the maven-release-plugin. Our SVN is only accessible on https with ssl mutual authentication. Yes we have to type our P12 password every time we do a svn operation. That's the way it is ... Just curious, why don't you configure subversion to store the PKCS12 password in some secure place ? I am surely not paranoid enough but see http://subversion.tigris.org/faq.html#plaintext-passwords. Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to specify default file encoding?
Steve Z [EMAIL PROTECTED] writes: Hello, I want to know how to define default file encoding. first, could I specify file encoding when creating: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app ... such as appending one param like this b-Dencoding=UTF-8/b so the generated files(pom.xml,index.jspetc.) are UTF-8 encoding definitely. others, could I specify one default encoding in one place and one time? such as for resource,compiler... all the plugin with writing capacity. This is not maven specifice: You can use file.encoding system property to force Java to use a certain encoding for characters I/O. This is usually set according to your current locale setting, YMMV. eg. $ export MAVEN_OPTS=-Dfile.encoding=UTF-8 HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: properties in settings.xml
Huang, Yan [EMAIL PROTECTED] writes: Hi, I noticed that the install phase does not resolve the properties that are defined in settings.xml. For example, I use a property in my settings.xml to define the release version: profile idDefaultProfile/id activation activeByDefaulttrue/activeByDefault /activation properties myversion1.1.1.1/myversion /properties /profile Now, I have a pom that access that property: groupIdmyexample.myexample/groupId artifactIdfoo1/artifactId version${myversion}/version When I run mvn install, it does creat and install foo1-1.1.1.1.jar in my local repo in ~/.m2/repository/myexample/ However, when I look at the foo1-1.1.1.1.pom file, the version tag is not resolved and instead it still refers to ${myversion}. Is it a problem? AFAIK this is perfectly normal: The deployed .pom file is the actual pom of the project without any modification. You can find the effective pom (ie. the one used to build the artifact) inside the META-INF/ directory of the jar. The rationale behind this (speaking within control of more knowledgeable maven developers) is that the deployed pom can be used as a dependency to construct another pom withing another process, where the variables would need to be instantiated to other values according to settings/profiles/whatever. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Custom mojo/lifecycle questions
Hello, In your mvn command, you are invoing esp:install which means: - execute the mojo install in the plugin esp In your mojo's configuration you may have forked a lifecycle which would explain maven's behavior: - validate is executed twice, one for the mojo and once for the lifecycle the pom is packaged two - install is executed once to prevent recursive invocation HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Custom mojo/lifecycle questions
Hello Anders, I was the one who triggered the mail from Jason as I and lot of other people had the same kind of questions than yours :) The net conclusion I came up to is that if you want to do something with custom lifecyles, you jsut have to live with the three lifecycles that exists right now: default, clean and site. Apart from the name problem, this is not really an issue: just pretend that compile = install, install = overlay, ... and everything will be ok. Also, there may some confusion between phases naming and mojo naming: It would have been better to name the phases 'phase1' 'phase2' ... You can think in terms of programs and functions: a mojo is a function, a phase and a lifecycle are programs. You have more than enough phases to create complex lifecycles. Actually, from a a theoretical point of view, as a plugin can trigger a lifecycle, I think you just need 2 phases to create a complex build tree ! As usual, I am not aware of your particular problem but what I would do would be to just stick to the default lifecycle, bind your mojos to it and don't care to fork lifecycles within the mojo themselves (it is always possible to do the binding in the pom) and use your custom packaging as the example you gave us. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Javadoc in an assembly
Hello, I posted recently a example of javadoc jarring and inclusion in a third(party project. Addition to assembly follows immediately using dependencySet or if you dare maven-dependency-plugin. -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: two test directories
Hello, You could use http://mojo.codehaus.org/build-helper-maven-plugin/ to add a test source directory. -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Javadoc in an assembly
Brian E. Fox [EMAIL PROTECTED] writes: If you dare maven-dependency-plugin. Hey what does that mean? j/k Hmm, nothing wrong about the m-d-p :) And this may not be very english too. Just referring to some example I saw today (about self-contained jars) where this plugin was a bit abused, if I reming correctly, and the solution with assembly was cleaner. I really find the maven-dependency-plugin extremely useful by the way... -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Javadoc in an assembly
Brian E. Fox [EMAIL PROTECTED] writes: If you dare maven-dependency-plugin. Hey what does that mean? j/k BTW, what does j/k means ? --Brian -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problem with site generation i18n
Thanks for the pointer. I thought this had something to do with the site plugin instead. regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Merging javadocs
Following some recent post about javadoc aggregation, I tried to play with javadoc attachments and dependency unpacking with some success and it was quite easy. Here are the poms: For project exporting javadoc: ?xml version=1.0?project parent artifactIdmerging-javadoc/artifactId groupIdoqube.maven/groupId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion groupIdoqube.maven.javadoc/groupId artifactIdproject1/artifactId version1.0-SNAPSHOT/version build plugins plugin artifactIdmaven-javadoc-plugin/artifactId executions execution idattach-javadocs/id goals goaljar/goal /goals /execution /executions /plugin /plugins /build /project For project importing javadoc: ?xml version=1.0?project parent artifactIdmerging-javadoc/artifactId groupIdoqube.maven/groupId version1.0-SNAPSHOT/version /parent modelVersion4.0.0/modelVersion groupIdoqube.maven.javadoc/groupId artifactIdaggregate/artifactId version1.0-SNAPSHOT/version build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-dependency-plugin/artifactId executions execution idunpack/id phasepackage/phase goals goalunpack/goal /goals configuration artifactItems artifactItem groupIdoqube.maven.javadoc/groupId artifactIdproject1/artifactId version1.0-SNAPSHOT/version typejar/type classifierjavadoc/classifier overWritetrue/overWrite outputDirectory${project.build.directory}/site/project1-docs//outputDirectory /artifactItem artifactItem groupIdoqube.maven.javadoc/groupId artifactIdproject2/artifactId version1.0-SNAPSHOT/version classifierjavadoc/classifier typejar/type overWritetrue/overWrite outputDirectory${project.build.directory}/site/project2-docs//outputDirectory /artifactItem /artifactItems outputDirectory${project.build.directory}/site/project2-docs//outputDirectory /configuration /execution /executions /plugin /plugins /build/project It is then just a matter of adding links on site.xml: ?xml version=1.0 encoding=ISO-8859-1? project name=Javadoc aggregation test publishDate position=bottom format=dd-MM-/ body menu name=API Documentation item name=Project1 href=/project1-docs/index.html/ item name=Project2 href=/project2-docs/index.html/ /menu /body /project Of course, this is not **true** aggregation, but it works fine. One could achieve true aggregation using similar technique but with: - exporting sources - unpackgin source files and tweaking javadoc plugin to use these as inputs My 2 cts. -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Problem with site generation i18n
Hello, I ran recently into a strange problem with site generation. When I add the locale fr, maven fails with the following error: java.lang.IllegalArgumentException: Unmatched braces in the pattern. at org.apache.maven.reporting.AbstractMavenReportRenderer.applyPattern(AbstractMavenReportRenderer.java:619) at org.apache.maven.reporting.AbstractMavenReportRenderer.linkPatternedText(AbstractMavenReportRenderer.java:353) at org.apache.maven.reporting.AbstractMavenReportRenderer.tableCell(AbstractMavenReportRenderer.java:213) at org.apache.maven.reporting.AbstractMavenReportRenderer.tableCell(AbstractMavenReportRenderer.java:193) at org.apache.maven.reporting.AbstractMavenReportRenderer.tableRow(AbstractMavenReportRenderer.java:225) at org.apache.maven.report.projectinfo.MailingListsReport$MailingListsRenderer.renderBody(MailingListsReport.java:238) at org.apache.maven.reporting.AbstractMavenReportRenderer.render(AbstractMavenReportRenderer.java:65) at org.apache.maven.report.projectinfo.MailingListsReport.executeReport(MailingListsReport.java:65) at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:101) at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:67) at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderModule(DefaultSiteRenderer.java:239) at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render(DefaultSiteRenderer.java:115) at org.apache.maven.plugins.site.SiteMojo.renderLocale(SiteMojo.java:124) at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:92) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125) at org.apache.maven.cli.MavenCli.main(MavenCli.java:280) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) This does not happen with, say, de locale. I noticed that the fr locale is iso-8859-1 encoded whereas the de locale is utf-8 encoded. AFAIK, encoding of properties file should be latin-1 as per the PropertyResourceBundle reference in JDK. So one would expect better results with french locale :) The following does nothing: 1. adding -Dfile.encoding=iso8859-1 to MAVEN_OPTS 2. adding inputEncoding tag to maven-site-plugin Browsing Jira, I have seen several issues related to encoding in site plugin but could not determine the status of my problem in relationship with theses issues. Should I file some Jira issue and/or try to track the problem further (I did not try to check what's going on in site plugin) ? Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: The processing order of Maven2's reactor
Huang, Yan [EMAIL PROTECTED] writes: Hello, I'm wondering how maven is figuring out the Reactor build order and if there is a way to tweak this order? If I see there are exact same line for a particular project twice in this order, does it mean that maven 2 would build twice? Maven builds projects by doing a topological sorting of the nodes of the directed graph constructed by the dependency relation between modules. This graph is constructed by looking at modules and dependencies tags in poms. Or so I think -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to test a plugin
William Ferguson [EMAIL PROTECTED] writes: I haven't found it, so I have to ask. Have you read this ? http://maven.apache.org/developers/committer-testing-plugins.html That said, I agree this is just some notes on testing tools, note a guide for creating meaningful tests for plugins. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Running heavy tests in the build lifecycle
Hello, Here is some sample POM that exposes what could be done to separate tests into different groups. Note that the same things could be done using the groups tag for testNG. The interesting thing is that execurtions can be merged (eg. mvn -Ptest1,test2 test) to group several subgroups. 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; modelVersion4.0.0/modelVersion groupIdoqube.maven/groupId artifactIdmultiple-test/artifactId version1.0-SNAPSHOT/version packagingjar/packaging parent groupIdoqube.maven/groupId artifactIdmaven-course/artifactId version1-SNAPSHOT/version /parent build plugins plugin artifactIdmaven-surefire-plugin/artifactId configuration !-- ensures no tests are run in default execution -- includes include/include /includes /configuration /plugin /plugins /build profiles profile idtest1/id build plugins plugin artifactIdmaven-surefire-plugin/artifactId executions execution idtest1/id goals goaltest/goal /goals configuration includes include**/group1/*/include /includes /configuration /execution /executions /plugin /plugins /build /profile profile idtest2/id build plugins plugin artifactIdmaven-surefire-plugin/artifactId executions execution idtest2/id goals goaltest/goal /goals configuration includes include**/group2/*/include /includes /configuration /execution /executions /plugin /plugins /build /profile /profiles /project I tried another solution redefining testSourceDirectory but it dose not work when multiple profiles are selected. Another elegant solution would be to use maven-build-helper plugin to add different source directoris according to selected profile. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Multipage report generation
Hello, I am investigating the multipage report generation abilities of maven. There seems to be a SinkFactory inteface for creating new Sink objects, that could be used in an AbstractMavenReport. Does it work ? Can someone points me to an example that uses this feature ? Thanks in advance, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Explaination of packagingpom/packaging
Hello, As the name implies, the packaging pom is for projects consisting only of a pom. This is of great use for: - company/group wide configuration - multi-projects builds - dependencies grouping - ... Take a look at http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html for more explanations adn in-depth exploration of the notion of lifecycle. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Build javadoc of dependencies?
Hello, This is most probably not possible with the javadoc plugin alone, but this effect could possibly be achieved using javadoc:jar goal and maven-dependency-plugin's unpack goal. This is untested however :) HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Cyclic dependency problem
Hello, I would suggest breaking explicitly the dependency by creating separate projects for the ejbs and the pure java code they encapsulate and expose. HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Running heavy tests in the build lifecycle
Kjetil Kjernsmo [EMAIL PROTECTED] writes: Looking through the source tree, I see that we do allready have a naming convention, but in terms of directory naming: test: functional/ integration/ performance/ unit/ where a test may have a path like: test/integration/source/com/computas/eass/server/persistence/TestServiceProvider.java where the test/integration/source is not part of the package name. The tests to be run in the test phase are in unit/, the tests for the integration test phase is also well named. I suppose this is somewhat contrary to convention, so the question is if I should rename things or configure things to use these subdirs? You could also create a separate project for the heavy-handed ones and only build that test suite manually as needed. Right. My boss mentioned that, but I felt that it was a bit inelegant, and he is not very experienced with Maven either. Wouldn't it be nice to have a separate lifecycle phase for stuff like this? Maybe you could use two features peculiar to maven to achieve what you want within the confine of a single project (although I think moving integration tests out to another project is a good idea): 1. define a profile for each different kind of test you want to run: perf, func, unit... 2. in each profile, configure different set of test executions. this can be done by configuring surefire plugin (see http://maven.apache.org/plugins/maven-surefire-plugin/, it has a zillion parameters to play with). If you use testNG, you can define different test groups to be executed in each profile, if you use Junit, you can include/exclude test files (you can also do that with testNG of course). 3. configure the basic execution of surefire (ie. the one that gets executed always) to just run unit tests. Then running your tests is a matter of invoking maven with the right profile(s): mvn -Pfunc-test or mvn -Pperf-test or even mvn -Pfunc-test -Pperf-test HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to define as to which phase the goal is to be executed
Farhan Sarwar [EMAIL PROTECTED] writes: Another quick question, Where to define/configure as to which phase the Mojo/goal is to be executed, so far with what I have read it seems that it's the Mojo class file which has this annotation for @phase (at class level) to tell MAVEN about the phase the goal is to be executed, just wanted to be sure if that's the only way. Farhan. No, that's not the only way, that's the default way to define when a mojo is run. You can also bind a mojo in a different phase, or even multiple phases, using the execution configuration in your POM (Note: the one that use the mojo, not the one that defines the mojo): plugins plugin artifactIdmyartifact-plugin groupId... executions execution idexe1/id goals goalmygoal/goal /goals configuration !-- config for this execution goes here -- /configuration /execution /executions HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to check for goals in each phase
Farhan Sarwar [EMAIL PROTECTED] writes: Hey guys, Wanted to know if there is a way to determine the goals configured to be executed in each of life-cycle phases? Hello, Maybe this link can answer your questions. Look also in sonatype's and devzuz's books: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html http://maven.apache.org/articles.html -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Question on adding a dependency
Farhan Sarwar [EMAIL PROTECTED] writes: Got a simple question if someone could respond. All the dependencies that we add in a project's pom are in the form of groupid ,artifactid and version, so what in case we have some propriety product/jar for which the maven structure (or let's say the pom) is yet not defined, so in that case we'll require creating a maven pom for it on our own ? so that it can be included as a dependency. Correct ? You can use maven-install-plugin:install-file to setup your jar properly in maven's repo(s) (or deploy for remote repos), as per http://maven.apache.org/plugins/maven-install-plugin/usage.html HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Custom packaging question
Eric Redmond [EMAIL PROTECTED] writes: I wrote a little bit about it here - though I suppose it wouldn't hurt going into more depth. http://www.sonatype.com/book/repository.html#tips_and_tricks Please read, and request any clarifications so I can fix the book. Thanks :) Hello, Thanks for the pointer, I have read it before but could not put my hands on it. I still have a problem. I defined the following custom artifacthandler and lifecycle: component-set components !-- basic transporter -- component roleoqube.maven.patch.mojo.Transporter/role role-hintdefault/role-hint implementationoqube.maven.patch.mojo.DefaultTransporter/implementation /component !-- the custom lifecycle mapping -- component roleorg.apache.maven.lifecycle.mapping.LifecycleMapping/role role-hintpatch/role-hint implementationorg.apache.maven.lifecycle.mapping.DefaultLifecycleMapping/implementation configuration phases generate-sourcesoqube.maven:patch-maven-plugin:fetch,oqube.maven:patch-maven-plugin:patch/generate-sources process-resourcesorg.apache.maven.plugins:maven-resources-plugin:resources/process-resources compileorg.apache.maven.plugins:maven-compiler-plugin:compile/compile process-test-resources org.apache.maven.plugins:maven-resources-plugin:testResources /process-test-resources test-compileorg.apache.maven.plugins:maven-compiler-plugin:testCompile/test-compile testorg.apache.maven.plugins:maven-surefire-plugin:test/test package org.apache.maven.plugins:maven-jar-plugin:jar /package installorg.apache.maven.plugins:maven-install-plugin:install/install deployorg.apache.maven.plugins:maven-deploy-plugin:deploy/deploy /phases /configuration /component !-- custom artifact definition -- component roleorg.apache.maven.artifact.handler.ArtifactHandler/role role-hintpatch/role-hint implementationorg.apache.maven.artifact.handler.DefaultArtifactHandler/implementation configuration classifierpatch/classifier extensionjar/extension typepatch/type packagingjar/packaging languagejava/language addedToClasspathtrue/addedToClasspath /configuration /component /components /component-set I also defined integration tests, with the following pom: 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; modelVersion4.0.0/modelVersion groupIdoqube.maven.patch/groupId artifactIdtest-patch-plugin/artifactId packagingpatch/packaging version1/version dependencies dependency groupIdjunit/groupId artifactIdjunit/artifactId version3.8.1/version /dependency /dependencies build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId configuration source1.5/source target1.5/target /configuration /plugin plugin groupIdoqube.maven/groupId artifactIdpatch-maven-plugin/artifactId extensionstrue/extensions dependencies dependency groupIdoqube.maven/groupId artifactIdpatch-gnu/artifactId version1.0-SNAPSHOT/version /dependency /dependencies version1.0-it-SNAPSHOT/version configuration urlfile:///${basedir}/src/resources/sources.jar/url packingjar/packing patchs patchpatch1.patch/patch patchpatch2.patch/patch patchpatch3.patch/patch /patchs /configuration /plugin /plugins /build /project The artifact gets installed as expected, which is great, but not with the expected components; I have installed: oqube.maven.patch/test-patch-plugin/1/test-patch-plugin-1.patch but given the descriptor, I would have expected: oqube.maven.patch/test-patch-plugin/1/test-patch-plugin-1-patch.jar Are my expectations wrong ? Thanks for your help. -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Maven SVN Integration
Steven Crosley [EMAIL PROTECTED] writes: mvn scm:checkin -Dmessage=This is a test I get a successful build, but the svn executes a file command instead of sending it to my repository: [INFO] [scm:checkin] [INFO] Executing: svn --non-interactive commit --file /tmp/maven- scm-947054377.commit [INFO] Working directory: /Users/myuser/Documents/Projects/sampleproject What do you mean by 'executes a file command' ? The preceding command is a valid svn commit, the --file tells svn to use the given as commit message. If it is this command that gets executed, the changes are commited. Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Problems with Java 5 imports
Hello, While writing a plugin, I had problems with the following statements: - import static foo.bar.*; - public enum Toto { } The qdox engine choked on these. Is this a known problem ? Shall I file an issue with qdox ? maven-plugin-plugin ? both ? Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Custom packaging question
Hello, While creating a custom packaging, I ran into slight problems with configuring the components.xml for plexus. I would like to understand what are the roles/differences of the various configuration elements for an artifact and how to define them properly. I can see from maven-core's samples that we have in ArtifactHandler: - extension - type - classifier - packaging - language Another question is: How is this definition related to the lifecycle mapping definition ? Thanks, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Questions on multi-module management
Zarick Lau [EMAIL PROTECTED] writes: Approach II: My another solution is using a tricks with profile. I declare the the parent pom with en empty modules list: modules /modules If profile X is activated, module-a /module-b is added in the modules list. With this particular profile, maven will only build module-a and module-b. I have come-up with this approach for a long time, however, I need to define quite a lots of profile for various combination of module set. As a result, I think this approach is rather hackish... Hello, I too used this approach to build different set of modules: test, integration, production. It works well and is, I think, rather more mavenish than the first solution. Do you have so many different combinations ? You could use multiple profiles to merge recurring subsets. Regards, -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Problems with Java 5 imports
Eric Redmond [EMAIL PROTECTED] writes: QDox has been fixed on this for a while, but Maven plugins use the older version (1.6) and still do not support Java 5 (unless you want to manually install the code in trunk). What do you mean ? Providing a patch ? -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [m2] How to get access to test resources?
Mick Knutson [EMAIL PROTECTED] writes: In my unit test, I have a call to get a test.txt file that live in src/test/resources/test.txt byte[] test = AES.file2byte(test.txt); But it never finds the file You should access the file using classloader, as the resources are put on your classpath: InputStream is = getClass().getResourceAsStream(/test.txt); HTH -- OQube software engineering \ génie logiciel Arnaud Bailly, Dr. \web http://www.oqube.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Strange test execution problem
Hello, I have a strange problem running tests with maven. My test first create a directory and a jar in the temporary directory for the user, (property java.io.tmpdir), writes a class file to it, then uses that jar file to pass to a tested class that creates a classloader from it and loads a class using ClassLoader.loadClass(mypacakge.MyClass). Jar creation is done in setUp method in junit and jar deletion is done in tearDown method. Everything runs fine on linux box using jdk1.6, in maven2.0.6 and eclipse3.2. On windowsXP with jdk1.6, it runs fine in eclipse but breaks in maven2.0.6 with a strange errror: a NPE in the classloading, hinting at the fact the class loaded may be null. I tried to use forkMode always for surefire but it does not change result. Help of course appreciated, PS: Here is the full XML report and a link to the source file for tes (http://patchwork-cover.googlecode.com/svn/trunk/patchwork-main/src/test/java/oqube/patchwork/MainTest.java). ?xml version=1.0 encoding=UTF-8 ? - testsuite failures=0 time=0.859 errors=2 skipped=0 tests=5 name=oqube.patchwork.MainTest - properties property name=java.runtime.name value=Java(TM) SE Runtime Environment / property name=sun.boot.library.path value=C:\program files\Java\jdk1.6.0_01\jre\bin / property name=java.vm.version value=1.6.0_01-b06 / property name=java.vm.vendor value=Sun Microsystems Inc. / property name=java.vendor.url value=http://java.sun.com/; / property name=path.separator value=; / property name=java.vm.name value=Java HotSpot(TM) Client VM / property name=file.encoding.pkg value=sun.io / property name=user.country value=FR / property name=sun.java.launcher value=SUN_STANDARD / property name=sun.os.patch.level value=Service Pack 2 / property name=launcher.libdir value=C:\DOCUME~1\nono\LOCALS~1\Temp\Main-test / property name=java.vm.specification.name value=Java Virtual Machine Specification / property name=user.dir value=C:\Documents and Settings\nono\Mes documents\patchwork\patchwork-main / property name=java.runtime.version value=1.6.0_01-b06 / property name=java.awt.graphicsenv value=sun.awt.Win32GraphicsEnvironment / property name=basedir value=C:\Documents and Settings\nono\Mes documents\patchwork\patchwork-main / property name=java.endorsed.dirs value=C:\program files\Java\jdk1.6.0_01\jre\lib\endorsed / property name=os.arch value=x86 / property name=java.io.tmpdir value=C:\DOCUME~1\nono\LOCALS~1\Temp\ / property name=line.separator value= / property name=java.vm.specification.vendor value=Sun Microsystems Inc. / property name=user.variant value= / property name=os.name value=Windows XP / property name=sun.jnu.encoding value=Cp1252 / property name=java.library.path value=C:\program files\Java\jdk1.6.0_01\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\program files\Java\jdk1.6.0_01\bin;c:\program files\maven-2.0.6\bin\ / property name=java.specification.name value=Java Platform API Specification / property name=java.class.version value=50.0 / property name=sun.management.compiler value=HotSpot Client Compiler / property name=os.version value=5.1 / property name=user.home value=C:\Documents and Settings\nono / property name=user.timezone value=Europe/Paris / property name=java.awt.printerjob value=sun.awt.windows.WPrinterJob / property name=file.encoding value=Cp1252 / property name=java.specification.version value=1.6 / property name=user.name value=nono / property name=java.class.path value=C:\Documents and Settings\nono\.m2\repository\org\codehaus\plexus\plexus-archiver\1.0-alpha-7\plexus-archiver-1.0-alpha-7.jar;C:\Documents and Settings\nono\.m2\repository\org\apache\maven\surefire\surefire-api\2.3\surefire-api-2.3.jar;C:\Documents and Settings\nono\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-8\plexus-container-default-1.0-alpha-8.jar;C:\Documents and Settings\nono\.m2\repository\org\codehaus\plexus\plexus-utils\1.1\plexus-utils-1.1.jar;C:\Documents and Settings\nono\.m2\repository\org\apache\maven\surefire\surefire-booter\2.3\surefire-booter-2.3.jar;C:\Documents and Settings\nono\.m2\repository\classworlds\classworlds\1.1-alpha-2\classworlds-1.1-alpha-2.jar;C:\Documents and Settings\nono\.m2\repository\commons-lang\commons-lang\2.1\commons-lang-2.1.jar;C:\Documents and Settings\nono\.m2\repository\junit\junit\3.8.1\junit-3.8.1.jar / property name=java.vm.specification.version value=1.0 / property name=sun.arch.data.model value=32 / property name=java.home value=C:\program files\Java\jdk1.6.0_01\jre / property name=java.specification.vendor value=Sun Microsystems Inc. / property name=user.language value=fr / property name=awt.toolkit value=sun.awt.windows.WToolkit / property name=java.vm.info value=mixed mode, sharing / property name=java.version value=1.6.0_01 / property
Re: Strange test execution problem
Wayne Fay wrote: Things break constantly on Windows due to spaces in directory names. Given this works on Linux, I would assume this is your problem. Move everything to directories without spaces and try again. Wayne Thanks for quick answer ! But then, why does it work in Eclipse ? I don't think I am doing something really outstanding and I took great care to make my tests portable, constructing directories nodes by nodes and with only ascii chars in names. I will try working with a jar as it is done in surefire-booter: first creating the jar in temp file then retrieving its directory. Regards, Arnaud -- View this message in context: http://www.nabble.com/Strange-test-execution-problem-tf3676850s177.html#a10275412 Sent from the Maven - Users mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]