下面是如何使用MAVEN打JAR包的完整攻略。
步骤一:创建Maven项目
首先需要创建一个Maven项目,可以使用Maven自带的命令创建,具体步骤如下:
- 打开控制台,执行如下命令创建项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart
- 等待Maven完成项目的创建,并进入到项目根目录。
步骤二:编写代码
在项目中编写需要打包成JAR文件的代码,这里就不赘述了,可以自行编写需要的代码。
步骤三:配置pom.xml文件
- 配置打包方式
在pom.xml文件中,需要配置如下plugin:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.demo.App</mainClass> <!-- 指定启动类 -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
上面的plugin设置了使用maven-jar-plugin插件,同时配置了manifest中的addClasspath选项为true,表示JAR包中包含classpath路径,还指定了mainClass的值为com.example.demo.App,表示启动类的包路径。
- 配置项目依赖
如果需要使用其他第三方库,则需要在pom.xml文件中添加它们的依赖。以引入SLF4J及其Log4j实现为例,配置如下:
<dependencies>
<!-- SLF4J日志框架 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- Log4j2实现 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
更多依赖项可以参考Maven中央仓库。
步骤四:执行打包命令
执行如下Maven打包命令,将项目打包成JAR文件:
mvn package
命令执行完成后,在项目的target目录中,会生成my-app-1.0-SNAPSHOT.jar文件(如果你使用的是示例命令创建的项目,则生成的文件名是my-app.jar)。
示例一:打包一个hello world程序
- 创建一个名为helloworld的Maven项目
mvn archetype:generate -DgroupId=com.example -DartifactId=helloworld -DarchetypeArtifactId=maven-archetype-quickstart
- 修改pom.xml文件,添加如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
- 编写一个hello world程序,在src/main/java/com/example/App.java中添加如下代码:
package com.example;
public class App {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
- 执行打包命令:
mvn package
执行完成后,在target目录下生成helloworld-1.0-SNAPSHOT.jar文件。
- 运行jar包
在终端中输入下列命令:
java -jar target/helloworld-1.0-SNAPSHOT.jar
控制台打印出Hello World!即可。
示例二:打包一个Web项目
- 创建一个名为webproject的Maven项目
mvn archetype:generate -DgroupId=com.example -DartifactId=webproject -DarchetypeArtifactId=maven-archetype-webapp
- 修改pom.xml文件,添加如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.example.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
- 在src/main/java/com/example/目录下创建App.java文件,并添加如下代码:
package com.example;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class App implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Web project started.");
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("Web project stopped.");
}
}
这里实现了ServletContextListener接口,声明Web项目的启动和停止时需要执行的操作。
- 在src/main/webapp/WEB-INF/目录下创建web.xml文件,添加如下Servlet配置:
<web-app>
<servlet>
<servlet-class>com.example.HelloServlet</servlet-class>
<servlet-name>hello-servlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>hello-servlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<listener>
<listener-class>com.example.App</listener-class>
</listener>
</web-app>
- 在src/main/java/com/example/目录下创建HelloServlet.java文件,添加如下代码:
package com.example;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "HelloServlet", urlPatterns = {"/hello"})
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.getOutputStream().println("Hello World!");
}
}
这里实现了Servlet接口,并覆盖了doGet方法,在访问/hello路径时返回"Hello World!"字符串。
- 执行打包命令:
mvn package
执行完成后,在target目录下生成webproject-1.0-SNAPSHOT.jar文件。
- 运行jar包
在终端中输入下列命令:
java -jar target/webproject-1.0-SNAPSHOT.jar
访问http://localhost:8080/hello即可看到返回的"Hello World!"字符串。
通过以上示例,可以看到如何使用Maven打包成JAR文件,并执行相关操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用MAVEN打JAR包(直接使用) - Python技术站