Another way to do it is changing the copy mojo to make it doing what I do in my groovy script and it would make sense IMO to have the configs:xml as dependency instead of the main artifact, allowing the copy mojo to deal with more complex classifier (ie. local-configs, integration-configs, uat-configs and so on) Thought ?
Frédéric THOMAS > From: [email protected] > To: [email protected] > Subject: AW: [FlexMojos] Compatible Model Validator > Date: Tue, 9 Dec 2014 09:24:14 +0000 > > Well in order to address this issue I was planning on automatically > processing the dependencies in a flex project and to have flexmojos add > direct rsl scoped deps for transitive dependencies. Should make the copy rsl > goal work correctly. > > Unfortunately my motivation investing my time in flex is currently at an all > time low. Perhaps I'll look into this during the Christmas holidays. > > Chris > > Gesendet mit meinem HTC > > ----- Reply message ----- > Von: "Frédéric THOMAS" <[email protected]> > An: "[email protected]" <[email protected]> > Betreff: [FlexMojos] Compatible Model Validator > Datum: Mo., Dez. 8, 2014 16:27 > > > Unfortunately you will only prevent the warning messages. Still maven won't > > dresolve the scopes correctly when it comes to transitive dependencies :-( > > rely shooting would make it necessary do do greater changes in mavens inner > > workings. But it's still a lot better than to have the errors all the time. > You're right, in more because my "builder" parent pom have their own > lifecycles, I can't rely on the copy-flex-resources goal to copy RSLs as it > doesn't resolve (because it can't) the RSLs but check directly in the poms, > which is very bad when you have parameterized the merge, caching, rsl > scopes, it finds only variables, thus, I wrote a groovy script which look at > the *-configs:xml dependencies and extract the rsls info from the them and > copy them to the "rsls" dir defined by the user, it seems a lot of work but > it is not, moreover, at compile time, I ask FM to generate a classifier for > each environment I need to deploy to but here again FM doesn't know how to > manage custom classifiers and link-report, configs and size-report, so, all > in I had to rely on something else, this little groovy script for those > interested and the Maven conf after: > import groovy.util.XmlSlurper > > import java.nio.file.Files; > > def destinationDirectory = new File(project.properties.rslDestination) > > if (!destinationDirectory.exists()) > destinationDirectory.mkdir() > > project.dependencies.findAll{artifact -> artifact.getClassifier()== > project.properties.configClassifier && artifact.getType()=='xml'}.each() { > def artifact = it; > println "Copying Flex resources for: " + artifact > > def configFile = new File(settings.localRepository + File.separator + > artifact.groupId.replace(".", File.separator) + File.separator + > artifact.artifactId + File.separator + > artifact.version + File.separator + > artifact.artifactId + "-" + artifact.version + "-" + > project.properties.configClassifier + "." + artifact.type) > > def root = new XmlSlurper().parse(configFile) > > def rslPathNodes = root["runtime-shared-library-path"]; > > rslPathNodes.each() { > def rslPath = it["path-element"] > def rslUrl = it["rsl-url"][0] > > def rslUrlString = rslUrl.toString() > def ext = rslUrlString.substring(rslUrlString.lastIndexOf(".")); > > def originRslFile = new File(rslPath.toString().replace(".swc", ext)); > def destinationRslFile = new File(project.properties.rslDestination + > File.separator + originRslFile.getName()) > > if (!destinationRslFile.exists()) { > println "Copying RSL : " + originRslFile.getAbsolutePath() + "to > : " + destinationRslFile.getAbsolutePath() > Files.copy(originRslFile.toPath(), destinationRslFile.toPath()) > } else println "Skiping RSL copy of : " + > destinationRslFile.getAbsolutePath() + " [Already exist]" > } > } > <plugin> > <groupId>org.codehaus.gmaven</groupId> > <artifactId>gmaven-plugin</artifactId> > > <executions> > <execution> > <id>copy-flex-resources</id> > <phase>generate-resources</phase> > <goals> > <goal>execute</goal> > </goals> > <configuration> > <properties> > > <rslDestination>${project.build.outputDirectory}/rsls</rslDestination> > > <configClassifier>${build.profile.id}-configs</configClassifier> > </properties> > <classpath> > <element> > <groupId>org.codehaus.groovy</groupId> > <artifactId>groovy-xml</artifactId> > <version>2.1.0-rc-2</version> > </element> > </classpath> > > <source>${pom.basedir}/src/main/script/copyFlexResources.groovy</source> > </configuration> > </execution> > </executions> > </plugin> > > <dependencies> > <dependency> > <groupId>com.*.blabla</groupId> > <artifactId>Application</artifactId> > <version>${Application-version}</version> > <classifier>${build.profile.id}-configs</classifier> > <type>xml</type> > </dependency> > > <dependency> > <groupId>com.*blabla</groupId> <artifactId>Module</artifactId> > > <version>${Module-version}</version><classifier>${build.profile.id}-configs</classifier> > <type>xml</type> > </dependency> > </dependencies> > > Frédéric THOMAS > > > From: [email protected] > > To: [email protected] > > Subject: AW: [FlexMojos] Compatible Model Validator > > Date: Sat, 6 Dec 2014 21:52:00 +0000 > > > > Unfortunately you will only prevent the warning messages. Still maven won't > > dresolve the scopes correctly when it comes to transitive dependencies :-( > > rely shooting would make it necessary do do greater changes in mavens inner > > workings. But it's still a lot better than to have the errors all the time. > > > > Chris > > > > Gesendet mit meinem HTC > > > > ----- Reply message ----- > > Von: "Frédéric THOMAS" <[email protected]> > > An: "[email protected]" <[email protected]> > > Betreff: [FlexMojos] Compatible Model Validator > > Datum: Sa., Dez. 6, 2014 15:54 > > > > Hi Chris, > > > > Allowing more Maven Scopes is the reason why the extension I created should > > be install before the build, for other kind of validations, you can still > > create your extension but no needs to install it before the build, AFAIK > > you can simply add it inside the build.extensions of your project parent > > pom if the extension is an AbstractMavenLifeCycleParticipant and override > > the public void afterProjectsRead( MavenSession session ) and I guess from > > here, with the help of the MavenSession [1], you can have access to > > anything you need to do other kind of validations or even other things. > > > > Or I didn't get well your point :-) > > > > Frédéric THOMAS > > > > [1] > > http://maven.apache.org/ref/3.2.3/maven-core/apidocs/org/apache/maven/execution/MavenSession.html > > > > > From: [email protected] > > > To: [email protected] > > > Subject: AW: [FlexMojos] Compatible Model Validator > > > Date: Fri, 5 Dec 2014 19:16:59 +0000 > > > > > > Well I was thinking of a logic integrated into maven that allows plugins > > > to contribute validators that he'll validating their own configuration. > > > Unfortunately this is only possible using a maven extension (actually > > > exactly the extension point you used). I am and was getting a lot of > > > support questions which would actually be easy to validate automatically > > > but are hard to guide humans through ;-) > > > > > > Let's say the logic would go through the plugins in the build and check > > > each jar for validator logic an use this it found and have them validate > > > their own configuration. > > > > > > Hope this explains what I was thinking of. > > > > > > Chris > > > > > > Gesendet mit meinem HTC > > > > > > ----- Reply message ----- > > > Von: "Frédéric THOMAS" <[email protected]> > > > An: "[email protected]" <[email protected]> > > > Betreff: [FlexMojos] Compatible Model Validator > > > Datum: Fr., Dez. 5, 2014 18:33 > > > > > > Hum.. Not sure I understand totally, you want to add an extension to > > > FlexMojos as a module and that extension could be extended to add > > > features like rules and suggestions regarding the plugin configuration ? > > > > > > Frédéric THOMAS > > > > > > > From: [email protected] > > > > To: [email protected] > > > > Subject: AW: [FlexMojos] Compatible Model Validator > > > > Date: Fri, 5 Dec 2014 16:27:54 +0000 > > > > > > > > Eventually a modular solution would be a good idea. One that can be > > > > extended with rules and suggestions regarding the plugin configuration. > > > > If for example someone uses deprecated config options or invalid ones, > > > > if someone uses bad practices etc. > > > > > > > > Chris > > > > > > > > Gesendet mit meinem HTC > > > > > > > > ----- Reply message ----- > > > > Von: "Frédéric THOMAS" <[email protected]> > > > > An: "[email protected]" <[email protected]> > > > > Betreff: [FlexMojos] Compatible Model Validator > > > > Datum: Fr., Dez. 5, 2014 16:03 > > > > > > > > I mean, adding the extension as a new module and add a goal to install > > > > the extension, what do you think ? > > > > > > > > Frédéric THOMAS > > > > > > > > From: [email protected] > > > > To: [email protected] > > > > Subject: RE: AW: [FlexMojos] Compatible Model Validator > > > > Date: Fri, 5 Dec 2014 15:01:06 +0000 > > > > > > > > > > > > > > > > > > > > Could be a new goal ? > > > > > > > > Frédéric THOMAS > > > > > > > > > From: [email protected] > > > > > To: [email protected] > > > > > Subject: AW: [FlexMojos] Compatible Model Validator > > > > > Date: Fri, 5 Dec 2014 14:54:37 +0000 > > > > > > > > > > Well I was more thinking of adding a module to flexmojos in order to > > > > > release the lib. Copying would have to remain a manual task as I > > > > > don't want to modify the maven installation. > > > > > > > > > > Chris > > > > > > > > > > Gesendet mit meinem HTC > > > > > > > > > > ----- Reply message ----- > > > > > Von: "Frédéric THOMAS" <[email protected]> > > > > > An: "[email protected]" <[email protected]> > > > > > Betreff: [FlexMojos] Compatible Model Validator > > > > > Datum: Fr., Dez. 5, 2014 13:50 > > > > > > > > > > Hi Chris, > > > > > > I assume this is a maven extension which you have to deploy to your > > > > > > maven extension directory > > > > > yes it is even though, I provided a profile to auto install it [1] > > > > > > I remember discussing something like this with cello a few years > > > > > > ago but he deleted my posts on this topic and refused to add that > > > > > > to flexmojos. > > > > > It happened to me as well and he even kicked me out of the group, > > > > > bloody Velo :-) > > > > > > Nave now there's a way to add that as an additional module? But > > > > > > only if you're interested in this. > > > > > Well I wouldn't how to do except that the plugin could copy the > > > > > deployed extension into the lib/ext folder as done in Wagon maven > > > > > plugin [2] > > > > > Any better ideas? > > > > > > > > > > Frédéric THOMAS > > > > > [1]<profile> > > > > > <id>prepare-maven-extended-libs</id> > > > > > <activation> > > > > > <file> > > > > > > > > > > <missing>${env.MAVEN_HOME}/lib/ext/flexmojos-compatible-model-validator.jar</missing> > > > > > </file> > > > > > </activation> > > > > > <build> > > > > > <plugins> > > > > > <plugin> > > > > > <groupId>org.apache.maven.plugins</groupId> > > > > > <artifactId>maven-dependency-plugin</artifactId> > > > > > <version>2.8</version> > > > > > <executions> > > > > > <execution> > > > > > <id>copy</id> > > > > > <phase>validate</phase> > > > > > <goals> > > > > > <goal>copy</goal> > > > > > </goals> > > > > > <configuration> > > > > > <artifactItems> > > > > > <artifactItem> > > > > > > > > > > <groupId>com.doublefx.maven.utils.flexmojos</groupId> > > > > > > > > > > <artifactId>flexmojos-compatible-model-validator</artifactId> > > > > > <version>1.0.0-SNAPSHOT</version> > > > > > <type>jar</type> > > > > > <overWrite>true</overWrite> > > > > > > > > > > <outputDirectory>${env.MAVEN_HOME}/lib/ext</outputDirectory> > > > > > > > > > > <destFileName>flexmojos-compatible-model-validator.jar</destFileName> > > > > > </artifactItem> > > > > > </artifactItems> > > > > > > > > > > <overWriteReleases>true</overWriteReleases> > > > > > > > > > > <overWriteSnapshots>true</overWriteSnapshots> > > > > > </configuration> > > > > > </execution> > > > > > </executions> > > > > > </plugin> > > > > > <plugin> > > > > > <groupId>org.codehaus.gmaven</groupId> > > > > > <artifactId>gmaven-plugin</artifactId> > > > > > <version>1.4</version> > > > > > <executions> > > > > > <execution> > > > > > <phase>validate</phase> > > > > > <goals> > > > > > <goal>execute</goal> > > > > > </goals> > > > > > </execution> > > > > > </executions> > > > > > <configuration> > > > > > <source> > > > > > fail("FlexMojos Compatible Model Validator > > > > > extension is now configured. Please restart the build, and then it > > > > > will be successful.") > > > > > </source> > > > > > </configuration> > > > > > </plugin> > > > > > </plugins> > > > > > </build> > > > > > </profile> > > > > > > > > > > [2] > > > > > http://svn.codehaus.org/mojo/tags/wagon-maven-plugin-1.0-beta-5/src/main/java/org/codehaus/mojo/wagon/UpdateMaven3Mojo.java > > > > > > From: [email protected] > > > > > > To: [email protected] > > > > > > Subject: AW: [FlexMojos] Compatible Model Validator > > > > > > Date: Fri, 5 Dec 2014 11:51:34 +0000 > > > > > > > > > > > > Cool Stuff. > > > > > > > > > > > > Will definitely look into this. But I assume this is a maven > > > > > > extension which you have to deploy to your maven extension > > > > > > directory, our was there a maven change that allows this as a > > > > > > plugin? > > > > > > > > > > > > I remember discussing something like this with cello a few years > > > > > > ago but he deleted my posts on this topic and refused to add that > > > > > > to flexmojos. > > > > > > > > > > > > Nave now there's a way to add that as an additional module? But > > > > > > only if you're interested in this. > > > > > > > > > > > > Chris > > > > > > > > > > > > Gesendet mit meinem HTC > > > > > > > > > > > > ----- Reply message ----- > > > > > > Von: "Frédéric THOMAS" <[email protected]> > > > > > > An: "[email protected]" <[email protected]> > > > > > > Betreff: [FlexMojos] Compatible Model Validator > > > > > > Datum: Fr., Dez. 5, 2014 12:41 > > > > > > > > > > > > Hi, > > > > > > For those interested I created and shared a Maven extension to get > > > > > > rid of the Maven warnings regarding the custom scopes [1]. > > > > > > Frédéric THOMAS > > > > > > [1] https://github.com/doublefx/flexmojos-compatible-model-validator > > > > > > > > > > > > > > >
