install

java

openjdk-17-jdk: https://openjdk.java.net/projects/jdk/17/

应设置JAVA_HOME环境变量

maven

maven: https://maven.apache.org/

windows下需要配置maven到PATH环境变量

archlinux下安装目录为 /opt/maven/。

maven本地仓库的默认目录为$HOME/.m2/repository。在maven的安装目录中找到conf/settings.xml, 把settings.xml拷到$HOME/.m2/目录下。

修改$HOME/.m2/settings.xml,自行配置添加mirror url,例如:

    <mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
    </mirrors>

eclipse ide

eclipse-java: https://www.eclipse.org/downloads/

develop

假设 eclipse 的 project 文件夹为$HOME/eclipse-workspace

参考: Building Java Projects with Maven

eclipse maven project

eclipse -> file -> new -> other -> maven -> maven project -> next 
            -> create a simple project, use default workspace location -> next
            -> group id: com.abbypan.justfortest, artifact id: HelloWorld, version: 0.0.1-snapshot, packaging: jar, Name: HelloWorld, Description: HelloWorld
            -> finish

会生成$HOME/eclipse-workspace/HelloWorld的目录,注意该目录下有当前工程的pom.xml配置文件。

引用其他jar包

假设需要使用 joda-time 2.10.13 包,则在pom.xml中添加

<dependencies>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.10.13</version>
        </dependency>
</dependencies>

编写代码

cd $HOME/eclipse-workspace/HelloWorld/
mkdir -p src/main/java/com/abbypan/justfortest/
cd src/main/java/com/abbypan/justfortest

编写HelloWorld.javaGreeter.java代码。

可以在java代码中直接import org.joda.time.LocalTime;,引用joda-time。注意要在 eclipse 的 HelloWorld Project 右键选中 maven -> update Project,自动下载所引用的jar包。

导出可执行的jar

在pom.xml中添加maven.compiler、build的配置。注意设置mainClass,HelloWorld.java中的main函数可以做为入口。

<properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
</properties>

<build>
        <plugins>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.9.0</version>
          <configuration>
            <release>17</release>
          </configuration>
        </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.abbypan.justfortest.HelloWorld</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

在 eclipse 的 HelloWorld Project 右键选中 maven -> update Project,自动下载所引用的jar包。

在 eclipse 的 HelloWorld Project 右键选中 run as -> mvn clean,自动下载相关的maven plugins。

在 eclipse 的 HelloWorld Project 右键选中 run as -> java application,测试HelloWorld通过。

cd $HOME/eclipse-workspace/HelloWorld/
mvn compile
mvn package

将生成 target/HelloWorld-0.0.1-SNAPSHOT.jar

测试jar包:

$ java -jar target/HelloWorld-0.0.1-SNAPSHOT.jar com.abbypan.justfortest.HelloWorld "abbypan"
The current local time is: 23:21:05.252
Hello world : abbypan

存档:eclipse_maven_helloworld



Published

18 January 2022

Tags


Share On