当前位置: 首页 > 面试题库 >

如何为Eclipse&M2E在maven pom.xml文件中为类路径条目定义访问规则?

冯庆
2023-03-14
问题内容

为了避免对jfxrt.jar的非法访问警告,我手动将类路径文件更改为包括访问规则:

想要的类路径条目

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
        <accessrules>
            <accessrule kind="accessible" pattern="javafx/**"/>
            <accessrule kind="accessible" pattern="com/sun/javafx/**"/>         
        </accessrules>
</classpathentry>

如果我执行pom.xml文件,则标签 accessrule会被删除 ,新条目为

当前由pom.xml / M2E生成的类路径条目

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
</classpathentry>

这是因为有关访问规则的信息未包含在我的pom.xml文件中。如何修改pom.xml文件以生成所需的类路径文件?

  • 我可以对Maven-compiler-plugin使用某些配置吗?

  • 还是我必须使用一些额外的Maven插件来修改类路径文本文件?

  • 还是根本无法在pom.xml文件中解决此问题,而我将不得不为M2E编写功能请求?

这是我的pom.xml文件中的一个片段(我使用pom打包):

当前的pom.xml条目用于编译阶段

<!-- ### COMPILE ### phase -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <!-- specify current java version here: -->
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
    <executions>
        <execution>
            <id>compile-execution</id>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>                           
            </goals>
        </execution>
        <execution>
            <id>org.treez.test-compile-execution</id>
            <phase>org.treez.test-compile</phase>
            <goals>                         
                <goal>testCompile</goal>
            </goals>
        </execution>
    </executions>       
</plugin>

问题答案:

我找到了一种解决方法来修复我的.classfile文件。需要两个步骤:

  1. 将maven-antrun-plugin添加到pom.xml文件中的#build#=>#plugins#部分,以替换.classpath文件中的文本:


    org.apache.maven.plugins
    maven-antrun-plugin
    1.8


    prepare-package







    run






  2. 告诉M2E执行该插件。否则,M2E将忽略它。在pom.xml文件的#build#=>#pluginManagement#部分中定义生命周期映射:




    org.eclipse.m2e
    lifecycle-mapping
    1.0.0





    org.apache.maven.plugins
    maven-antrun-plugin
    1.8

    run




    false










 类似资料:
  • 我得到以下错误消息,同时添加m2e Maven与eclipse: 无法完成安装,因为找不到一个或多个必需项。正在安装的软件:用于Eclipse的m2e-Maven集成(包括孵化组件)1.6。1.20150625-2338(org.eclipse.m2e.feature.feature.group 1.6.1.20150625-2338)缺少要求:Maven POM XML编辑器1.6。1.2015

  • 我用eclipse创建了一个maven项目,并用下面的命令制作了jar文件 打包 当我尝试知道我的mvn项目配置是真的还是不是这个命令 mvn exec:Java-D exec . main class = " giraph . hello world . app " 我得到这个错误: 在helloworld项目上执行目标 org.codehaus.mojo: exec-maven-plugin:

  • 我使用以下代码在tomcat中设置上下文路径,通过覆盖tomcat的默认路径,我可以使用直接访问应用程序。 现在我将使用WildFly-8.2.0作为运行时环境。我尝试将。war文件直接粘贴到中,我可以在等浏览器中访问我的项目。 我需要像在tomcat中那样为wildfly设置相同的配置,以便通过重写wildfly的默认欢迎页面来访问中的项目。我试图在wildfly中做同样的事情,但我被困在哪里。

  • 我正在尝试运行一个由其他人创建的已经存在的eclipse项目。 在将其导入eclipse并尝试作为->Java应用程序运行之后,它失败了,因为它在bin/resources中找不到.properties文件 我打印出eclipse使用的类路径 果然,它包括bin和所有lib/*.jars,但不包括bin/resources。将.properties文件复制到bin中可以使程序正常工作,但我想了解如

  • 问题内容: 因此,我2009年的新年决心是学习Java。我最近购买了“ Java for Dummies”,并通过使用Eclipse重新编写代码来遵循本书中的演示代码。无论如何,书中使用相对路径的每个示例似乎都不会读取应该从中读取的.txt文件。 这是示例代码: 您可以在下面的屏幕快照中看到我已包含此文件。 图片不再可用 此外,我已经验证过,在构建应用程序时,将Hankees.txt的副本与已编译

  • 但不走运,未设置自定义运行时类路径。