如何使用命令行创建 WAR 文件?
How to create a WAR file using the commandline?
我安装了 JBoss Developer Studio,可以通过 "right mouse project > Export > WAR file" 创建 WAR 文件,但我想使用命令行将我的项目导出到 WAR 文件.
我安装了 Maven,这是 Studio 的要求之一,我读到我可以使用 Maven 生成 WAR 文件,但我需要一个名为 pom.xml 的文件。当我搜索我的工作区和项目时,pom.xml 不见了。我可能需要手动创建 pom.xml 但我不确定如何创建。
我的项目目录树如下:
Siesta
├── build
│ └── classes
├── src
└── WebContent
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
如何使用命令行为我的 Maven / JBoss 项目创建 WAR 文件?我使用 Linux 并希望不必创建 pom.xml 文件,但如果没有其他方法,那么我将使用 xml 文件生成 war文件。
编辑:
所以 jar 是创建 war 文件的方法。我写了一个小脚本,它将为我的特定目录创建一个 war 文件。
#!/bin/bash
cd Siesta/WebContent/
jar -cvf ../../Siesta.war *
cd -
然后,如果您在 ubuntu 中的 zip 实用程序或存档管理器中打开 war 文件,您将看到此结构
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
我必须将 CD 放入要创建 war 文件的目录,这有点烦人。我认为使用 jar 的 -C 选项可能有更好的方法,但是当我使用 "jar -cvf Siesta.war -C Siesta/WebContent *" 它没有相同的结果。
编辑2:
jar -cvf my-app.war myfolder/
为了让我的应用程序在 TomCat 上运行,我使用了以下内容:
cd Siesta/WebContent
jar -cvf Siesta.war *
好的,这是一个已经存在的 SO,其中包含关于如何创建 war 文件的几种可能性:How to create war files。
我个人更喜欢 Maven 而不是任何其他构建方案 - 因为我是从 ANT 迁移过来的,所以我一开始就不喜欢 Maven,但是在花了一两天时间阅读文档之后:http://maven.apache.org/pom.html 我开始喜欢上了它。在你的情况下,你需要的只是重构你的项目以满足 Maven 标准文件结构,并为你的源创建一个最小的 Maven 项目(a.k.a。pom.xml
文件),而不是包装 war
默认 jar
。
如果你只想坚持使用控制台并且除了 JDK 提供的那些之外不使用任何构建助手,你可以用这样的东西创建你的 war:
jar cvf my-app.war
查看此内容:https://docs.oracle.com/javase/tutorial/deployment/jar/build.html 以获得受支持选项的完整参考。
(注意:"war" 在基于 java 的 Web 应用程序的上下文中遵循标准格式:http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html 而技术“.war”文件只是与重命名为“.zip”的 ZIP 压缩文件夹相同。)
(另请注意,我真的会花时间与 Maven 取得联系,因为在那之后你会了解一个重要的构建工具,并且能够创建 jar
、ear
、war
等在标准流程中)。
如果这是一个 Maven 项目,然后打开控制台,导航到 pom.xml 文件所在的位置,然后运行:
mvn package
它将在 ${basedir}/target 下创建 {artifactId}-{version}.war 文件目录。这假设您的 packaging
POM 元素在 pom.xml 文件中设置为 war
。
<project ...>
...
<packaging>war</packaging>
...
</project>
Some of the valid packaging values are jar, war, ear and pom. If no packaging value has been specified, it will default to jar.
最简单的选择(如果您使用的是 Maven)是使用 maven-archetype-webapp 创建它:
mvn archetype:generate -DgroupId=com.sample -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
然后您可以优化 pom.xml 以包含所需的依赖项,例如:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>
我安装了 JBoss Developer Studio,可以通过 "right mouse project > Export > WAR file" 创建 WAR 文件,但我想使用命令行将我的项目导出到 WAR 文件.
我安装了 Maven,这是 Studio 的要求之一,我读到我可以使用 Maven 生成 WAR 文件,但我需要一个名为 pom.xml 的文件。当我搜索我的工作区和项目时,pom.xml 不见了。我可能需要手动创建 pom.xml 但我不确定如何创建。
我的项目目录树如下:
Siesta
├── build
│ └── classes
├── src
└── WebContent
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
如何使用命令行为我的 Maven / JBoss 项目创建 WAR 文件?我使用 Linux 并希望不必创建 pom.xml 文件,但如果没有其他方法,那么我将使用 xml 文件生成 war文件。
编辑:
所以 jar 是创建 war 文件的方法。我写了一个小脚本,它将为我的特定目录创建一个 war 文件。
#!/bin/bash
cd Siesta/WebContent/
jar -cvf ../../Siesta.war *
cd -
然后,如果您在 ubuntu 中的 zip 实用程序或存档管理器中打开 war 文件,您将看到此结构
├── extjs
├── extjs-4.2.0
├── extjs-4.2.2
├── index.jsp
├── META-INF
├── siesta
├── tests
└── WEB-INF
我必须将 CD 放入要创建 war 文件的目录,这有点烦人。我认为使用 jar 的 -C 选项可能有更好的方法,但是当我使用 "jar -cvf Siesta.war -C Siesta/WebContent *" 它没有相同的结果。
编辑2:
jar -cvf my-app.war myfolder/
为了让我的应用程序在 TomCat 上运行,我使用了以下内容:
cd Siesta/WebContent
jar -cvf Siesta.war *
好的,这是一个已经存在的 SO,其中包含关于如何创建 war 文件的几种可能性:How to create war files。
我个人更喜欢 Maven 而不是任何其他构建方案 - 因为我是从 ANT 迁移过来的,所以我一开始就不喜欢 Maven,但是在花了一两天时间阅读文档之后:http://maven.apache.org/pom.html 我开始喜欢上了它。在你的情况下,你需要的只是重构你的项目以满足 Maven 标准文件结构,并为你的源创建一个最小的 Maven 项目(a.k.a。pom.xml
文件),而不是包装 war
默认 jar
。
如果你只想坚持使用控制台并且除了 JDK 提供的那些之外不使用任何构建助手,你可以用这样的东西创建你的 war:
jar cvf my-app.war
查看此内容:https://docs.oracle.com/javase/tutorial/deployment/jar/build.html 以获得受支持选项的完整参考。
(注意:"war" 在基于 java 的 Web 应用程序的上下文中遵循标准格式:http://docs.oracle.com/javaee/6/tutorial/doc/bnaby.html 而技术“.war”文件只是与重命名为“.zip”的 ZIP 压缩文件夹相同。)
(另请注意,我真的会花时间与 Maven 取得联系,因为在那之后你会了解一个重要的构建工具,并且能够创建 jar
、ear
、war
等在标准流程中)。
如果这是一个 Maven 项目,然后打开控制台,导航到 pom.xml 文件所在的位置,然后运行:
mvn package
它将在 ${basedir}/target 下创建 {artifactId}-{version}.war 文件目录。这假设您的 packaging
POM 元素在 pom.xml 文件中设置为 war
。
<project ...>
...
<packaging>war</packaging>
...
</project>
Some of the valid packaging values are jar, war, ear and pom. If no packaging value has been specified, it will default to jar.
最简单的选择(如果您使用的是 Maven)是使用 maven-archetype-webapp 创建它:
mvn archetype:generate -DgroupId=com.sample -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
然后您可以优化 pom.xml 以包含所需的依赖项,例如:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>