将Intellij设置为热更新jar并运行Maven Appassembler

时间:2013-10-17 18:05:59

标签: maven jar intellij-idea appassembler

我想设置 Intellij 以自动从命令行执行我正在做的事情,重复使用maven,即运行mvn package -DskipTests来重建我的jar并运行 Appassembler Maven插件,用于生成我的可运行脚本。理想情况下,我想要它做的就是热更新我已经改变的jar中的类。

我已经想出如何告诉Intellij使用Project Structure中的Artifact选项卡创建jar,但是我可以让Intellij从pom导入这个工件信息而不是我手动设置吗?

  • 它会自动导入pom更改,但从未导入此工件信息。
  • 这将使它能够使用maven生成的确切输出名称,这样无论我是从命令行还是IDE工作,我都可以使用一组输出。 (原因如下)

Appassembler 添加了一个额外的步骤,其中包括将所有依赖项复制到其目标文件夹并生成脚本。如果Intellij无法触发Appassembler,我想也许Appassembler可能会使用符号链接,而当jar更新时,我的可运行应用程序脚本会立即使用该版本。或者在更糟糕的情况下,我只需要从命令行运行这一特定步骤,即已经构建的jar。

更新

如果它有帮助,这就是我在pom.xml中使用Appassembler的方式:

<build>
  <plugins>
    <plugin>
      <executions>
        <execution>
          <id>package</id>
          <goals>
            <goal>assemble</goal>
          </goals>
        </execution>
      </executions>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>appassembler-maven-plugin</artifactId>
      <version>1.2.2</version>
      <configuration>
        <programs>
          <program>
            <mainClass>com.foo.bar.Foobnobicator</mainClass>
            <name>gofoo</name>
          </program>
        </programs>
      </configuration>
    </plugin>
  </plugins>
</build>

感谢有关实现这一目标的最佳方法的建议。

0 个答案:

没有答案