如何运行Java1.7项目,其中包括使用intellij+maven+tomcat的Java9模块库?

uhry853o  于 2021-07-04  发布在  Java
关注(0)|答案(0)|浏览(214)

我以为这是个专业问题。后来我觉得这是个假猫问题。现在我认为这是个智力问题。
最近,我的tomcat示例在加载maven jar时开始抛出异常:

<dependency>
    <groupId>com.github.wnameless.json</groupId>
    <artifactId>json-flattener</artifactId>
    <version>0.9.0</version>
</dependency>

出现模糊错误-2020年9月2日10:16:13 pm org.apache.catalina.startup.contextconfig processannotationsjar severe:无法从jar处理jar条目[module info.class]
使用该依赖关系的虚拟项目在intellij中构建良好。以构建的jar为例,手动将其复制到一个独立的tomcat示例(例如tomcat\u home/webapp/project.war)似乎没有错误地加载。将编译的字节码目标更改为9(最多11个)和最新的9.0.37 tomcat,通过intellij也会出现同样的错误。
核心问题是,我通过intellij使用maven tomcat7插件部署到tomcat home,在java9模块加载期望方面,无论目标字节码、tomcat版本还是openjdk版本,我都会遇到一个错误。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.company.project</groupId>
    <artifactId>javatest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>Maven Webapp</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.github.wnameless.json</groupId>
            <artifactId>json-flattener</artifactId>
            <version>0.9.0</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

如何配置intellij+maven以避免在运行tomcat时尝试使用module-info.class(对于1.7或1.8目标)?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题