Java Maven构建:在构建之前需要编辑pom.xml

Java Maven构建:在构建之前需要编辑pom.xml,java,maven,pom.xml,Java,Maven,Pom.xml,我是maven的初学者,我正在尝试建立 当我运行mvn package进行构建时,出现错误: [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/t/Documents/ContactDiscoveryService/client/src/main/java/org/whispersystems/contactdiscover

我是maven的初学者,我正在尝试建立 当我运行
mvn package
进行构建时,出现错误:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/t/Documents/ContactDiscoveryService/client/src/main/java/org/whispersystems/contactdiscovery/ContactDiscoveryClient.java:[13,63] cannot find symbol
  symbol:   class SignalContactDiscoveryUrl
  location: package org.whispersystems.signalservice.internal.configuration
[ERROR] /home/t/Documents/ContactDiscoveryService/client/src/main/java/org/whispersystems/contactdiscovery/ContactDiscoveryClient.java:[167,5] cannot find symbol
  symbol:   class SignalContactDiscoveryUrl
  location: class org.whispersystems.contactdiscovery.ContactDiscoveryClient
[ERROR] /home/t/Documents/ContactDiscoveryService/client/src/main/java/org/whispersystems/contactdiscovery/ContactDiscoveryClient.java:[167,57] cannot find symbol
  symbol:   class SignalContactDiscoveryUrl
  location: class org.whispersystems.contactdiscovery.ContactDiscoveryClient
[ERROR] /home/t/Documents/ContactDiscoveryService/client/src/main/java/org/whispersystems/contactdiscovery/ContactDiscoveryClient.java:[190,42] cannot find symbol
  symbol:   method getRegisteredUsers(java.security.KeyStore,java.util.Set<java.lang.String>,java.lang.String)
  location: variable serviceManager of type org.whispersystems.signalservice.api.SignalServiceAccountManager

以下步骤在这里起作用

$ git clone https://github.com/signalapp/ContactDiscoveryService.git
client/pom.xml
中的依赖项版本从
2.7.8
更新为
2.9.0
。因为类
SignalContactDiscoveryUrl
是在版本
2.8.1

<dependency>
    <groupId>org.whispersystems</groupId>
    <artifactId>signal-service-java</artifactId>
    <version>2.9.0</version>
</dependency>

“当我使用docker构建时”。。。docker不是一个构建系统,所以不是docker进行构建,而是其他东西——可能是安装在容器中的maven。在任何情况下,我们都需要更多关于您构建的信息,特别是POM的信息,以提供任何有意义的帮助。根据您目前提供的内容,您似乎缺少了一些依赖项和/或使用了错误的(或过时的)pom.xml,该文件已“更新”当您编辑原始文件时,您是否检查了pom.xml中是否包含所有必需的依赖项?我确定所有依赖项都包含在pom.xml中,因为当我编辑它时,没有任何更改(在末尾添加空间并保存文件),它的构建是正常的。如果在添加空间或新行时这样做有效,则似乎是控制字符的问题,在pom上尝试dos2unix或unix2dos,以两者中的任意一个为准applicable@ankidaemon但是当我运行
mvnclean
mvnpackage
时,该错误再次出现。我不知道你为什么是对的。版本2.9.0运行良好。但它不能回答为什么会发生这种错误。@Programmerdude版本号的更改解决了您在问题的
编译错误消息中发布的问题。对于另一个问题,您可以添加一些步骤来重现它吗?特别是您采取了哪些步骤来获得编译错误。将版本号保持不变的结果放入
中,无法找到工件org.WhispersSystems:signal service java:jar:2.7.8
,因为这个版本不在Maven Central中,所以版本2.7.8(在原始代码中)不存在,所以我将其更改为2.8.1,问题就发生了。有时我可以建立好,但有时我得到错误。没有代码更改,sure@Programmerdude这是令人惊讶的,因为缺少的类是在版本2.8.1之后添加的。1)
curlhttps://repo1.maven.org/maven2/org/whispersystems/signal-service-java/2.8.1/signal-service-java-2.8.1-sources.jar -o signal-service-java-2.8.1-sources.jar
2)
jar tf signal-service-java-2.8.1-sources.jar | grep SignalContactDiscoveryUrl
。也许你的类路径/项目设置有问题。
<dependency>
    <groupId>org.whispersystems</groupId>
    <artifactId>signal-service-java</artifactId>
    <version>2.9.0</version>
</dependency>
$ cd ContactDiscoveryService
$ mvn package