multi-module avce project javascript javascript-maven-plugin
Bonjour, j'ai un problème avec un projet javascript et sa dépendance sous la web app.
Mon projet est un multi-module,plusieurs jar, le javascript et le war.
j'utilise le javascript-maven-plugin pour le projet javascript comme decrit ici :
avascript-maven-tools
Le projet javascript se "compile" comme il faut , utilise bien Jasmine pour test unitaire et il y a bien a la fin un fichier JS dans le target.
Mais voila pour le wep-app, maven ne récupère pas ce fichier JS, mais tente de le télécharger, ce qui génère bien sur une erreur.
Code:
1 2 3 4 5 6 7
| [INFO] Building Hopeless - Web App 2012-04-11-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://repository.jboss.org/nexus/content/groups/public-jboss/com/hopeless/hopeless-js/2012-04-11-SNAPSHOT/maven-metadata.xml
Downloading: http://repository.jboss.org/nexus/content/groups/public-jboss/com/hopeless/hopeless-js/2012-04-11-SNAPSHOT/hopeless-js-2012-04-11-SNAPSHOT.js
...
..
[ERROR] Failed to execute goal on project hopeless-webapp: Could not resolve dependencies for project com.hopeless:hopeless-webapp:war:2012-04-11-SNAPSHOT: Could not find artifact com.hopeless:hopeless-js:js:2012-04-11-SNAPSHOT in repository.jboss.org (http://repository.jboss.org/nexus/content/groups/public-jboss/) -> [Help 1] |
Je ne comprend pas pourquoi il va bien chercher les jar des mes autres modules mais pas le fichier JS.
Voici mes pom :
Pom parent:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-parent</artifactId>
<version>2012-04-11-SNAPSHOT</version>
<name>Hopeless - Parent</name>
<packaging>pom</packaging>
<description>
Ce projet est le parent des projets constituants le jeu Hopeless World.
</description>
<modules>
<!-- Domaine / DAO -->
<module>hopeless-domaine</module>
<!-- Sécurity -->
<module>hopeless-security</module>
<!-- Services Spring -->
<module>hopeless-services</module>
<!-- Service d'email -->
<module>hopeless-email</module>
<!-- javascript d'hopeless -->
<module>hopeless-js</module>
<!-- Web App d'hopeless -->
<module>hopeless-webapp</module>
<!-- futur module pour exposer les web services du métier -->
<!-- <module>hopeless-ws</module> -->
</modules>
<!-- suite du pom -->
</project> |
Pom de hopeless-js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| <?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-parent</artifactId>
<version>2012-04-11-SNAPSHOT</version>
</parent>
<artifactId>hopeless-js</artifactId>
<packaging>js</packaging>
<!-- Name / Description -->
<name>Hopeless - Javascript</name>
<description>
Ce projet est le javascript de Hopeless.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.version>${project.version}</project.version>
<buildtime>${maven.build.timestamp}</buildtime>
</properties>
<pluginRepositories>
<pluginRepository>
<id>snapshots.repository.codehaus.org</id>
<name>Codehaus Snapshot Repository</name>
<url>http://snapshots.repository.codehaus.org</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<resources>
<resource>
<directory>src/maven-archiver</directory>
<filtering>true</filtering>
<targetPath>${project.build.directory}/maven-archiver</targetPath>
</resource>
</resources>
<extensions>
<extension>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javascript-maven-plugin</artifactId>
<version>2.0.0-alpha-1</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>my-component-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<descriptors>
<descriptor>${basedir}/src/assembler/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jslint-maven-plugin</artifactId>
<configuration>
<!-- on skip tous pour jslint, on utilise jasmine qui est beaucoup mieu -->
<skipTests>true</skipTests>
<excludes>
<exclude>*.js</exclude>
<exclude>**/*.js</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.2.0.0</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- <skipTests>${maven.test.skip}</skipTests> -->
<jsSrcDir>src/main/js</jsSrcDir>
<jsTestSrcDir>src/test/js</jsTestSrcDir>
<!-- <sourceIncludes> <include>src/test/resources/angular_1.0.6.min.js</include>
</sourceIncludes> -->
<!-- <specIncludes> <specInclude>src/test/resources/angular_1.0.6.min.js</specInclude>
</specIncludes> -->
<!-- <junitXmlReportFileName>../surefire-reports/TEST-jasmine.xml</junitXmlReportFileName> -->
<preloadSources>
<!-- Besoin de JQuery car angular utilise jqlite et ca plante avec
jasmine -->
<preloadSource>spec/lib/jquery-1.7.1.min.js</preloadSource>
<preloadSource>spec/lib/angular_1.0.6.js</preloadSource>
<preloadSource>spec/lib/angular-mocks.js</preloadSource>
</preloadSources>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>compress-js</id>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<nosuffix>true</nosuffix>
<aggregations>
<aggregation>
<!-- remove files after aggregation (default: false) <removeIncluded>true</removeIncluded> -->
<!-- insert new line after each concatenation (default: false) -->
<insertNewLine>true</insertNewLine>
<output>${project.build.directory}/hopeless-${project.version}.js</output>
<!-- <output>${project.build.directory}/${project.build.finalName}-${project.version}.js</output> -->
<!-- files to include, path relative to output's directory or absolute
path -->
<!--inputDir>base directory for non absolute includes, default to
parent dir of output</inputDir -->
<includes>
<!-- <include>${basedir}/src/licenses/license.js</include> -->
<include>**/*.js</include>
</includes>
<!-- files to exclude, path relative to output's directory <excludes>
<exclude>**/*.pack.js</exclude> <exclude>**/compressed.css</exclude> </excludes> -->
</aggregation>
</aggregations>
</configuration>
</plugin>
</plugins>
</build>
</project> |
pom du hopeless-webapp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| <?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-parent</artifactId>
<version>2012-04-11-SNAPSHOT</version>
</parent>
<artifactId>hopeless-webapp</artifactId>
<packaging>war</packaging>
<!-- Name / Description -->
<name>Hopeless - Web App</name>
<description>
Ce projet est la Web App Hopeless.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.version>${project.version}</project.version>
<buildtime>${maven.build.timestamp}</buildtime>
</properties>
<build>
<!-- Resources -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<!-- Test resources -->
<testResources>
<testResource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Hopeless Domaine -->
<dependency>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-domaine</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Hopeless Security -->
<dependency>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-security</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Hopeless Services -->
<dependency>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-services</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-email</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.hopeless</groupId>
<artifactId>hopeless-js</artifactId>
<version>${project.version}</version>
<type>js</type>
</dependency>
<!-- autre dependance -->
</dependencies>
</project> |
Je sais qu'il est possible de crée un war pour le JS et d'utiliser le overlay du plugin maven-war-plugin, mais vu qu'il essaye de d/l le JS, je me dit qu'il doit juste manquer un truc dans un pom pour qu'il aille chercher le JS dans le module concerné.
Merci d'avance de toute l'aide que vous pouvez me fournir.