我已经开始玩Maven2了,我正试图将我的一个项目从蚂蚁移植到maven。我已设法构建ear文件,使用jaxb和其他位,但还有一件事我不知道如何处理。
我有WAR模块,带有ExtJS代码,我正在使用JSBuilder来很好地创建和打包代码。这是作为ant任务完成的,如下所示:
<target name="-pre-compile" description="Building Frontend Libraries">
<java jar="web/lib/dev/JSBuilder2.jar" failonerror="true" fork="true" >
<arg line="--projectFile web/lib/dev/frontend.jsb2 --homeDir web/lib"/>
</java>
</target>
我想知道“maven”的做法是什么?有没有办法我可以纯粹在maven中完成它(看看maven:exec插件但是有点令人困惑)或者我是否必须从maven调用ant才能实现这个目标?
由于
答案 0 :(得分:2)
exec-maven-plugin是正确的答案(尽管你想要java目标)。您需要将其绑定到生命周期阶段。查看usage page的示例。在你的情况下,你需要这样的东西:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>jsbuilder</id>
<goals>
<goal>java</goal>
</goals>
<phase>compile</phase>
<configuration>
<mainClass><!-- fill in from jar's META-INF/MANIFEST.MF --></mainClass>
<argument>--projectFile</argument>
<argument>web/lib/dev/frontend.jsb2</argument>
<argument>--homedir</argument>
<argument>web/lib</argument>
</configuration>
</execution>
</executions>
<configuration>
<includeProjectDependencies>false</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
</configuration>
<dependencies>
<!-- a bit nasty, would be better if jsbuilder2 available in a maven repo. -->
<dependency>
<groupId>com.extjs</groupId>
<artifactId>jsbuilder2</artifactId>
<version>2.0.0</version>
<scope>system</scope>
<systemPath>web/lib/dev/JSBuilder2.jar</systemPath>
</dependency>
</dependencies>
</plugin>
如果你是JSBuilder2的大用户,那么值得问Cencha他们是否可以将它发布到maven中央仓库。将它们指向OSS Repository Hosting。