标签: pom.xml

在"正在更新Maven项目"期间发生内部错误.不支持的IClasspathEntry种类= 4

正如标题所提到的,我有以下问题:我用EclipseMaven Nature,当我更新我的Maven项目,我得到这个错误:

在"正在更新Maven项目"期间发生内部错误.
不支持的IClasspathEntry种类= 4

总是回来的解决方案如下:

  • 右键单击项目,删除maven性质
  • mvn eclipse:clean (项目在eclipse/STS中打开)
  • (有时他们建议做mvn eclipse:eclipse下一个)
  • 右键单击项目并重新启用maven性质

现在,我详尽地尝试了几次所有组合.但我总是得到上述错误.当我不得不进行mvn eclipse:eclipse项目时,错误开始发生.在使用m2eclipse功能并在eclipse中设置所有内容之前总是运行正常.

eclipse m2eclipse pom.xml maven

66
推荐指数
3
解决办法
11万
查看次数

如何使用Maven在JAR的"META-INF/services"文件夹中包含配置文件

我正在Eclipse中开发一个Java项目,它是使用Maven构建的.我正在使用旧项目中的一些回收代码,其中一个类在具有特定名称的JAR的"META-INF/services"文件夹中查找文件,然后解析该文件的文本.在此特定示例中,它查找具有Java接口名称的文件,然后从文件内部获取实现的类名.

所以基本上我要做的是在JAR的"META-INF/services"文件夹中包含一个文件名(X)和一行文本(Y)的文件.我猜这应该是使用Maven完成的,可能是通过在POM文件中指定一个属性,但我的研究没有发现任何东西.我知道你不应该硬编码或手动输入任何META文件,所以我不知道该怎么做.

提前致谢.

java eclipse pom.xml maven

66
推荐指数
3
解决办法
8万
查看次数

Maven:包括在公共存储库中找不到的jar

如果我要使用不在maven公共存储库中的第三方库,那么将它作为项目的依赖项包含在内的最佳方法是什么,以便当其他人签出我的代码时它仍然可以构建?

我的应用程序"A"依赖于公共存储库中不存在的jar"B".但是,我希望添加"B"作为对"A"的依赖,这样当世界另一端的人可以查看代码并仍然能够构建"A"时

dependencies maven-2 pom.xml

61
推荐指数
3
解决办法
4万
查看次数

Maven和POM.xml中的插件

我刚开始使用Maven,我读到插件是可以使用的附加组件.
典型的pom.xml文件结构是

<project>
  <groupId>org.koshik.javabrains</groupId>
  <artifactId>JarName</artifactId> (A fldernamed JarName was created) 
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>JarName</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

问题:我应该在哪里插入plugin标签?如下:

<plugin>
  <groupId>org.jibx</groupId>
  <artifactId>jibx-maven-plugin</artifactId>
  <version>1.2.4</version>
  <executions>
    <execution>
      <goals>
        <goal>bind</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

在依赖之前还是在dependency标记之后?有关系吗?

java maven-plugin pom.xml maven-3 maven

54
推荐指数
3
解决办法
7万
查看次数

Maven:如何从命令行激活配置文件?

这是我的pom.xml的一个片段.我尝试了以下操作,但配置文件未激活.

mvn clean install -Pdev1
mvn clean install -P dev1
Run Code Online (Sandbox Code Playgroud)

当我尝试mvn help:active-profiles没有配置文件被列为活动时.如果我设置<activeByDefault>dev1true,并运行 mvn help:active-profiles,它给我展示了配置文件被激活.

<profile>
        <id>dev1</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemPropertyVariables>
                            <env>local</env>
                            <properties.file>src/test/resources/dev1.properties</properties.file>
                        </systemPropertyVariables>
                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/dev1.testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>dev2</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemPropertyVariables>
                            <env>local</env>
                            <properties.file>src/test/resources/dev2.properties</properties.file>
                        </systemPropertyVariables>
                        <suiteXmlFiles>
                            <suiteXmlFile>src/test/resources/dev2.testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我的个人资料没有被激活.有没有人遇到类似的问题?

pom.xml maven

54
推荐指数
4
解决办法
11万
查看次数

Gradle build.gradle到Maven pom.xml

我有一个Gradle项目,我需要将其所有依赖项转移并与另一个Maven项目一起使用.换句话说,我如何从build.gradle生成(或者我可以生成)pom.xml?

gradle pom.xml maven

52
推荐指数
4
解决办法
8万
查看次数

Maven pom中的父标签代表什么?

例如:

<parent>
    <groupId>mycompany.trade.com</groupId>
    <artifactId>mycompany.trade.</artifactId>
    <version>1.1.1.0-SNAPSHOT</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

这是否意味着Maven会搜索父母pom?如果是的话,在哪里,以何种顺序?可能在文件夹中升级1级?或者在本地存储库或repo中?

谢谢.

directory artifact pom.xml maven

50
推荐指数
3
解决办法
3万
查看次数

Maven无法解析同一多模块项目中模块的依赖关系

运行命令时如

mvn dependency:build-classpath
Run Code Online (Sandbox Code Playgroud)

要么

mvn exec:java
Run Code Online (Sandbox Code Playgroud)

Maven无法解析我的某个模块与另一个模块的依赖关系.

[错误]无法在项目解析器-app上执行目标:无法解析项目project_group的依赖项:A:jar:0.1-SNAPSHOT:找不到工件project_group:B:jar:0.1-SNAPSHOT

项目结构如下:

/pom.xml
/A/pom.xml
/B/pom.xml
Run Code Online (Sandbox Code Playgroud)

父母pom如下:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>project_group</groupId>
  <artifactId>parent</artifactId>
  <packaging>pom</packaging>
  <version>0.1-SNAPSHOT</version>
  <name>parent</name>

  <modules>
    <module>A</module>
    <module>B</module>
  </modules>
Run Code Online (Sandbox Code Playgroud)

第一个子模块(未能解决依赖关系的模块):

    <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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>parent_group</groupId>
    <artifactId>parent</artifactId>
    <version>0.1-SNAPSHOT</version>
  </parent>
  <artifactId>A</artifactId>
  <packaging>jar</packaging>
  <name>A</name>

  <dependencies>
    <dependency>
      <groupId>parent_group</groupId>
      <artifactId>B</artifactId>
      <version>0.1-SNAPSHOT</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

第二个子模块(依赖项):

  <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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>parent_group</groupId>
    <artifactId>parent</artifactId>
    <version>0.1-SNAPSHOT</version>
  </parent>
  <artifactId>B</artifactId>
  <packaging>jar</packaging>
  <name>B</name>
Run Code Online (Sandbox Code Playgroud)

java jar classpath pom.xml maven

50
推荐指数
2
解决办法
6万
查看次数

缺少工件com.sun.jdmk:jmxtools:jar:1.2.1

我在Eclipse Indigo下创建了maven-achetype-quickstart的简单项目,然后我去了pom.xml gui编辑器,在依赖项选项卡中log4j通过搜索在相应的对话框中添加了依赖项.现在我的pom.xml看起来像

<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-.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
  <artifactId>Test_Maven_03</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Test_Maven_03</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
    </dependency>
</dependencies>
  </dependencyManagement>
</project>
Run Code Online (Sandbox Code Playgroud)

Eclipse说我的POM有许多问题,比如

缺少工件javax.jms:jms:jar:1.1 pom.xml/Test_Maven_03第2行Maven依赖问题

它是什么意思以及如何看到自动jar下载的maven功能.

编辑1 如果我选择log4j 1.2.16而不是1.2.15,我会收到另一个错误:Missing artifact log4j:log4j:bundle:1.2.16.所以我看不到自动的jar管理.

java eclipse dependency-management pom.xml maven

49
推荐指数
3
解决办法
5万
查看次数

CSS和JavaScript文件在Maven Web应用程序项目中的位置是什么?

我正在切换使用Maven作为我的Spring Web应用程序项目,我遇到了一个简单的问题.我不确定将CSS和JS文件放在新项目结构中的位置.

传统的Web App结构

在传统的Java Web应用程序结构中(在Eclipse中,创建为动态Web项目)我将CSS,Javascript和Images文件放在以下结构中

WebContent
|__css/myStyles.css
|__js/myjs.js
|__images/myImage.gif
|__WEB-INF
Run Code Online (Sandbox Code Playgroud)

然后在我的jsp中,如果我想引用一个CSS文件,我做如下:

<link rel="stylesheet" href="<%=request.getContextPath()%>/css/myStyles.css">
Run Code Online (Sandbox Code Playgroud)

这很好用.

Maven Web App结构

在Maven项目中,我将css文件放在以下位置:

第一次尝试

在与WEB-INF相同级别的webapp文件夹下,就像在传统的动态Web项目中一样.但是当我做以下事情时

mvn clean tomcat:run
Run Code Online (Sandbox Code Playgroud)

我从Spring Framework中收到以下错误:

org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/appname/css/myStyles.css] in DispatcherServlet
Run Code Online (Sandbox Code Playgroud)

第二次尝试

将我的css文件夹放在src/main/resources下但是当我执行以下操作时:

mvn clean tomcat:run
Run Code Online (Sandbox Code Playgroud)

我从Spring Framework中收到以下错误:

org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/appname/css/myStyles.css] in DispatcherServlet
Run Code Online (Sandbox Code Playgroud)

第三次尝试

放置我的css文件夹src/main/resources

结果:与上述相同

我确信它很简单,但我被卡住了,也许我忽略了一些东西.提前致谢

更新:添加pom.xml以查看它是否可以帮助解决问题:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> …
Run Code Online (Sandbox Code Playgroud)

css pom.xml maven

47
推荐指数
2
解决办法
8万
查看次数