小编Ale*_*x A的帖子

如果定义了父 pom,则不会发生存储库 url 的 Maven 属性替换

我遇到一个问题,当且仅当定义了父 pom 时,maven 才无法正确地将属性替换到我的存储库 URL 中。这尤其是一个问题,因为父 pom 位于远程存储库中,所以我需要定义父 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.group</groupId>
    <artifactId>parent-artifact</artifactId>
    <version>1.0.0</version>
    <relativePath/>
  </parent>

  <groupId>com.group</groupId>
  <artifactId>project-artifact</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <name>project</name>
  <description>test project</description>

  <properties>
    <nexus.url>https://nexus.myorganization.net</nexus.url>
  </properties>

  <repositories>
    <repository>
      <id>nexus-server</id>
      <url>${nexus.url}/repository/maven-releases/</url>
    </repository>
  </repositories>

</project>
Run Code Online (Sandbox Code Playgroud)

使用这个 pom,我得到了错误消息,Cannot access ${nexus.url}/repository/maven-snapshots/...很明显它没有用实际值替换属性。

如果我删除<parent>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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.group</groupId>
  <artifactId>project-artifact</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <name>project</name>
  <description>test project</description>

  <properties>
    <nexus.url>https://nexus.myorganization.net</nexus.url>
  </properties>

  <repositories>
    <repository>
      <id>nexus-server</id>
      <url>${nexus.url}/repository/maven-releases/</url>
    </repository>
  </repositories>

  <!-- adding this dependency so that Maven is forced to download …
Run Code Online (Sandbox Code Playgroud)

java maven

6
推荐指数
1
解决办法
2520
查看次数

mvn dependency:tree -Dverbose 挂起并且永远不会完成

我的项目中的传递依赖项存在版本冲突,我正在尝试使用它mvn dependency:tree -Dverbose来查找版本冲突。然而,每当我运行时mvn dependency:tree -Dverbose,它就会挂起并且永远不会完成。我尝试使用调试模式(mvn --debug dependency:tree -Dverbose)来找出发生了什么,似乎它正在连接到成百上千个存储库,而我在项目中的任何地方都没有定义这些存储库,编写跟踪文件,使用连接器,使用传输器等。 ..... 请参阅这里的pastebin,了解它在几个小时内所做的事情的一小段:https://pastebin.com/raw/L3z4u5Hj

当我不包含该标志时,这种情况不会发生-Dverbosemvn dependency:tree它本身非常快速,并且在几秒钟内完成。

此外,对于我拥有的任何其他存储库或代码库都不会发生这种情况:只有一个特定的存储库或代码库。但显然我不知道这个代码库与其他代码库有什么不同,只是依赖关系不同(假设某些依赖关系是问题的原因。)

似乎官方 Maven 邮件列表上的人也遇到了这个问题,但似乎他们也永远无法解决它: https: //www.mail-archive.com/users@maven.apache.org/msg143124。 html

任何帮助,将不胜感激。如果我无法弄清楚这一点,我将不得不一一删除依赖项,直到找到导致问题的依赖项,这将需要很长时间,因为这是一个非常大的代码库。

Maven版本:

Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 11.0.10, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-54-generic", arch: "amd64", family: "unix"
Run Code Online (Sandbox Code Playgroud)

maven-3 maven maven-dependency-plugin

6
推荐指数
1
解决办法
4322
查看次数

Spring Tool Suite AutoComplete / Content Assist 不起作用 - 设置中没有提案种类

我正在尝试将 Spring Tool Suite 4 与 Eclipse Oxygen 一起使用,但似乎不存在特定于 Spring Tool Suite 的自动完成/内容辅助功能。出现正常的日食内容辅助,但不会出现任何特定于 STS 的内容。

我关注了 StackOverflow 上的一些其他有用的帖子,并指出确保选择了 Preferences -> Java -> Editor -> Content Assist -> Advanced 中的 Spring 提案种类。但是,在执行此操作时,我发现该部分中没有 Spring 提案类型。我正在使用 STS 4,但由于某种原因,提案种类没有出现在该列表中。

如何解决此问题并使内容辅助/自动完成功能适用于 Spring Tool Suite 4?

注意:我已经尝试了以下 StackOverflow 文章的解决方案,但由于某种原因,它们都没有奏效。他们似乎都假设提案种类出现在它们应该出现的地方。 spring 工具套件中的内容自动完成 4 Eclipse Spring 工具缺少内容辅助/自动完成 Spring 工具套件无法自动显示字段变量名称提示?

这是在我的 IDE 中出现的提案种类的列表 - 请注意,没有出现与 Spring 相关的选项。

截屏

eclipse spring-tool-suite

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