一尘不染

Maven2&Swing项目:构建并运行swing应用程序

java

我试图找到有关如何使用Maven来构建和运行Swing应用程序的信息,但找不到任何有用的东西(Maven文档很乱)。

有人可以指出我相关文件吗?有人在Swing开发中使用Maven吗?


阅读 1021

收藏
2020-12-03

共1个答案

一尘不染

我猜您想从maven命令运行您的应用程序。您可以使用exec插件,如下所示:

<build>
    <plugins>    
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1-beta-1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.package.MainClass</mainClass>
                <arguments>
                    <argument>arg1</argument>
                    <argument>arg2</argument>
                </arguments>
            </configuration>
        </plugin>
    </plugins>
</build>

您可能还需要在pom中使用它。

<repositories>
    <repository>
        <id>Maven Snapshots</id>
        <url>http://snapshots.maven.codehaus.org/maven2/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>Maven Snapshots</id>
        <url>http://snapshots.maven.codehaus.org/maven2/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>

实际的配置可能会有所不同,具体取决于您最终使用的exec插件的版本-
我在某些版本上取得了成功,而在其他版本上却没有取得成功,因此找出正确版本的exec尝试是一次反复的尝试。您的项目的罐子。如果您有多个开发人员,这也很痛苦,因为一个开发人员的参数可能不适用于另一个开发人员,因此最好编写批处理/
shell脚本来启动应用程序。

为了完整起见,这里有一些示例代码,使可执行的jar文件与romaintaz答案中的链接一起使用。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.package.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
2020-12-03