java - 无需java代码构建war文件

标签 java windows maven jboss jax-rs

我按照(由某人提供给我的)步骤在 Windows 上的 JBOSS 上部署 war 文件,如下所示:

1)我创建了一个文件夹Verson3

2) 使用 Windows 命令提示符,我进入文件夹 Version3

3)我运行了以下命令并获得了构建成功

Y:\myusername\My Documents>cd Version3

Y:\myusername\My Documents\Version3>mvn archetype:generate -DgroupId=com.pkg.DownloadService -DartifactId=DownloadService -DarchetypeArtifactId=maven-archetype-we
bapp -DinteractiveMode=false

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: Y:\myusername\My Documents\Version3
[INFO] Parameter: package, Value: com.pkg.DownloadService
[INFO] Parameter: groupId, Value: com.pkg.DownloadService
[INFO] Parameter: artifactId, Value: DownloadService
[INFO] Parameter: packageName, Value: com.pkg.DownloadService
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: Y:\myusername\My 

    Documents\Version3\DownloadService
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 12.262 s
    [INFO] Finished at: 2018-02-22T17:16:11-06:00
    [INFO] Final Memory: 15M/161M
    [INFO] ------------------------------------------------------------------------

这生成了以下目录结构:

Version3
|-- src
|   `-- main
|       |-- resources
|       `-- webapp
|           |-- WEB-INF
|           |   `-- web.xml
|           `-- index.jsp
`-- pom.xml

4) 接下来,我被要求添加以下内容并从 pom.xml

中删除 JUnit 相关依赖代码
<repositories>
       <repository>
          <id>JBoss repository</id>
          <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
       </repository>
</repositories>
  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>  
  <dependencies>
    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jaxrs</artifactId>
      <version>2.3.2.Final</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0</version>
    </dependency>
  </dependencies>

5) 我所做的另一项更改是在 web.xml 中进行的:

<!-- Auto scan REST service -->
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <!-- this need same with resteasy servlet url-pattern -->
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
    </context-param>

    <listener>
        <listener-class>
            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
        </listener-class>
    </listener>

    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>resteasy-servlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

6) 运行以下命令:mvn clean package 其中 pom 文件所在。这创建了 target 文件夹和 war 文件等。

我想知道的是,根据我收到的说明,在上述过程中的任何地方都没有使用任何 java 文件。但我确实有一个java文件 定义了一个 JAXRS Web 服务,并且该文件中提到的包名称是 com.pkg.DownloadService。我想知道我是否应该考虑放置它 DownloadService 文件夹中的 java 文件,然后运行上述所有命令?因为在没有任何 Web 服务的情况下构建一个 war 文件对我来说没有意义。

最佳答案

您应该将 DownloadService.java 放在 src/main/java/com/pkg 下。按照您的目录结构,它看起来像:

Version3
|-- src
|   `-- main
|       |-- java
|       |   `-- com
|       |       `-- pkg
|       |           `-- DownloadService.java
|       |-- resources
|       `-- webapp
|           |-- WEB-INF
|           |   `-- web.xml
|           `-- index.jsp
`-- pom.xml

关于java - 无需java代码构建war文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48939586/

相关文章:

java - 为什么这个 Apache Camel 路由不将 JSON 转换为 XML?

java - 如何在 JavaFX 线程之外更新 TableView 项目

java - Redis 集群与 Spring Boot 集成

.net - 用于 Azure 扩展的 Wasabi block 多久收集一次数据?

使用 Java 运行项目时出现 java.lang.NoClassDefFoundError,但使用 mvn exec :exec 运行时有效

java - 如何在eclipse中运行这个spring rest maven项目

java - Camel 聚合器异常

windows - docker:是否可以从另一个容器中启动 native Windows 同级容器?

c++ - 为什么我的程序运行完后窗口立即消失了?我怎样才能让它留在身边?

java - Spring - 属性 'name' 不允许出现在元素 'constructor-arg' 中