簡體   English   中英

MAVEN BUILD FAILURE: 無法執行目標 org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) : Compilation failure

[英]MAVEN BUILD FAILURE: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) : Compilation failure

我正在嘗試構建 REST API,使用 java 開源框架和必要的配置。這將能夠構建和測試第一個 web 服務。 克隆項目並下載所有必需的依賴項后,我嘗試使用 maven 使用以下命令構建一個 war 文件
mvn clean package
但是在此之后生成了以下編譯錯誤

C:\Users\lenovo\Desktop\REST>mvn clean package
[INFO] Scanning for projects...
[INFO] Building REST services 1.0
[INFO] --------------------------------[ war ]---------------------------------
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ rest ---
[INFO] Deleting C:\Users\lenovo\Desktop\REST\target
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ rest ---
[INFO] Compiling 10 source files to C:\Users\lenovo\Desktop\REST\target\classes
[ERROR] COMPILATION ERROR :
[ERROR] /C:/Users/lenovo/Desktop/REST/src/main/java/com/ami/entity/Product.java:[5,33] package javax.xml.bind.annotation does not exist
[ERROR] /C:/Users/lenovo/Desktop/REST/src/main/java/com/ami/entity/Product.java:[40,6] cannot find symbol
symbol:   class XmlAttribute
 location: class com.ami.entity.Product
[ERROR] /C:/Users/lenovo/Desktop/REST/src/main/java/com/ami/entity/Product.java:[50,6] cannot find symbol
symbol:   class XmlAttribute
location: class com.ami.entity.Product

上面提到的位置是:

package com.ami.entity;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAttribute;


@Entity
@Table(name = "product")
public class Product implements java.io.Serializable {
private static final long serialVersionUID = -2107661175822965352L;
 private String itemId;
 private String itemName;
private String itemDesc;
private String createdBy;
private String updatedBy;
private Date createdAt;
private Date updatedAt;
public Product() {
}


@Id
@Column(name = "id", unique = true, nullable = false)
public String getItemId() {
    return this.itemId;
}
public void setItemId(String catGuid) {
    this.itemId = catGuid;
}

@Column(name = "name", unique = true, nullable = false)
@XmlAttribute(name="name")
public String getItemName() {
    return this.itemName;
}

public void setItemName(String catName) {
    this.itemName = catName;
}

@Column(name = "description", nullable = false)
@XmlAttribute(name="description")
public String getItemDesc() {
    return this.itemDesc;
}

public void setItemDesc(String catDesc) {
    this.itemDesc = catDesc;
}

@Column(name = "created_by")
public String getCreatedBy() {
    return this.createdBy;
}

public void setCreatedBy(String createdBy) {
    this.createdBy = createdBy;
}

@Column(name = "updated_by")
public String getUpdatedBy() {
    return this.updatedBy;
}

public void setUpdatedBy(String updatedBy) {
    this.updatedBy = updatedBy;
}

@Column(name = "created_at")
public Date getCreatedAt() {
    return this.createdAt;
}

public void setCreatedAt(Date createdAt) {
    this.createdAt = createdAt;
}

@Column(name = "updated_at")
public Date getUpdatedAt() {
    return this.updatedAt;
}

public void setUpdatedAt(Date updatedAt) {
    this.updatedAt = updatedAt;
}


}

有人可以幫忙嗎!

在 pom.xml 中添加 Java 11 XML 實用程序類解決了我的問題。 在現有的 pom.xml 中添加以下部分代碼:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
    </dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0</version>
</dependency>

克隆項目並再次下載所有必需的依賴項后.. 使用 maven 使用命令mvn clean package生成 war 文件。

對於 Java 8 用戶,請掃描您的類路徑以查找潛在沖突的 jaxb 庫。

例如,執行mvn dependency:tree並驗證不存在其他可能與 JRE 中的 JAXB 實現沖突的 JAXB 實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM