时间:2010-07-30 13:55:06

标签: java maven-2 ant extjs

我已经开始玩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才能实现这个目标?

由于

1 个答案:

答案 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