java - 使用添加的项目提供的依赖项运行 Tomcat Maven 插件

标签 java maven tomcat maven-3 maven-plugin

也许需要指出正确的方向,但是如果我添加一个“提供的”依赖项,而该依赖项不包含在 tomcat 提供的依赖项集中,则从 eclipse 中运行 tomcat7:run失败并在提供的范围 jar 中的类上出现 classnotfoundexception

它需要“提供”,因为它是来 self 运行 mvn install 的单独项目的自定义 jar,并且为了生产,我将 jar 复制到 $CATALINA_BASE/shared 目录,以便它可以(作为单例)跨应用程序/网络应用程序。

    <dependency>
        <groupId>IndexFileAccessTracker</groupId>
        <artifactId>IndexFileAccessTracker</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>

我看到的唯一方法(我对 Maven 和 Tomcat7 插件的了解有限)是在从 Eclipse 中的插件运行 tomcat 时将范围更改为 compile,然后将范围更改回 在运行 package 目标时提供

有解决办法吗?我尝试将依赖项添加到 tomcat maven 插件(将主要的 maven 依赖项保持为 provided 但得到相同的类未找到错误:

            <!-- For Maven Tomcat Plugin -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/CounterWebApp</path>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>IndexFileAccessTracker</groupId>
                    <artifactId>IndexFileAccessTracker</artifactId>
                    <version>0.0.1-SNAPSHOT</version>
                    <scope>compile</scope>
                </dependency>
            </dependencies>
        </plugin>

同样,它需要在主 Maven 依赖项中提供,因为我不希望它包含在已部署的 WAR 中。

最佳答案

使用配置文件解决,类似于https://stackoverflow.com/a/5951630

...
</dependencies>
<profiles>
<profile>
    <id>runineclipse</id>
    <dependencies>
        <dependency>
            <groupId>IndexFileAccessTracker</groupId>
            <artifactId>IndexFileAccessTracker</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</profile>  
</profiles>
<build>
...

然后在我的运行/调试配置中,将 runineclipse 添加到 Profiles: 框中。 (附带说明,要逐步调试,我必须手动将项目添加到“源”选项卡。)

构建配置与 Goals: 框中的 package 相同;并且我离开了原始依赖以具有范围 provided

关于java - 使用添加的项目提供的依赖项运行 Tomcat Maven 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845828/

相关文章:

java - Tomcat -Djava.library.path 设置

java - Junit:如何使用命令行从项目运行测试

java - 静态文件的 Maven 模块

java - Spring security 5 迁移指南

java - hibernate - 连接挂起

Tomcat 9 管理器控制台不工作

java - Android:无法从 Google Geocoding API 获取位置名称

java - 找不到媒体类型 MessageBodyReader=application/octet-stream

java - 无法评估所选表达式? - Eclipse 库调试错误

maven - 在 Maven 尝试解决它之前安装 BOM