当前位置: 首页 > 知识库问答 >
问题:

maven javadoc非法包名错误

齐昊焱
2023-03-14

我在运行mvn javadoc时遇到以下错误:javadoc

[错误]退出代码:1-javadoc:错误-非法包名称:"edu.princeton.cs.1-Fundamentals.1-1-BasicProgModel"

原因我很清楚,但我不知道如何解决它。

这是我在文件夹src/main/java/edu/princeton/cs/中的src文件结构。

├── 1-Fundamentals
│   ├── 1-1-BasicProgModel
│   ├── 1-2-DataAbstraction
│   ├── 1-3-BagsQueuesStacks
│   ├── 1-4-AnalysisOfAlgorithms
│   └── 1-5-UnionFind
├── 2-Sorting
│   ├── 2-1-ElementarySorts
│   ├── 2-2-Mergesort

在每个目录中,java代码都包含包edu。普林斯顿大学反恐精英。algs4;

这意味着文件夹名不是包名。然而,javadoc错误地认为文件夹名是包名。

我怎么能让maven知道没有像edu.princeton.cs.1-Fundamentals.1-1-BasicProgModel这样的包


共有2个答案

白芷阳
2023-03-14

你的路径是否包含空格。如果任何目录名包含空格,那么javadoc插件似乎失败了。

例子:

糟糕的路线:我的项目/java项目/我的新游戏

好路线:MyProject/Project java/My new game

李胤
2023-03-14

您试图违背Maven的惯例使用它。默认情况下,除非明确说明,否则项目的源代码根位于src/main/java下。这意味着下面的任何目录都将被视为包名称的一部分,因此必须与. java源文件中声明的包名称相匹配。

现在,您可以重写约定,并告诉Maven考虑另一个目录源根,以便JavaC或JavaDoc工作如预期:

::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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <!--Overrides the default:-->
        <!--<sourceDirectory>src/main/java</sourceDirectory>-->
        <sourceDirectory>./path/relative/to/pom.xml/</sourceDirectory>
    </build>
</project>

由于在这个项目中有多个来源,您可以考虑添加单独的POM。xml,或者更改布局并添加其他源目录,以及pom中的附加插件。xml:

项目结构:

    Project Directory
    ├── 1-Fundamentals
    │   ├── 1-1-BasicProgModel
    │   │   ├──src
    │   │   │  └──edu/princeton/cs/algs4 (only classes and directories matching packages)
    │   │   │     ├── JavaClass1.java
    │   │   │     └── JavaClass2.java
    │   │   └── other non source content
    │   ├── 1-2-DataAbstraction
    │   │   ├──src
    │   │   │  └──edu/princeton/cs/algs4
    │   │   │     ├── JavaClass3.java
    │   │   │     └── JavaClass4.java
    │   │   └── other non source content
    │   └── 1-3-BagsQueuesStacks
    │       ├──src
    │       │  └──edu/princeton/cs/algs4
    │       │     ├── JavaClass5.java
    │       │     └── JavaClass6.java
    │       └── other non source content
    └── pom.xml

告诉maven源根在哪里:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals><goal>add-source</goal></goals>
                        <configuration>
                            <sources>
                                <source>1-Fundamentals/1-1-BasicProgModel/src</source>
                                <source>1-Fundamentals/1-2-DataAbstraction/src</source>
                                <source>1-Fundamentals/1-3-BagsQueuesStacks/src</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
 类似资料:
  • 我使用eclipse,在我的java项目中有8个包。我试图用eclipse(Project)生成我的javadoc- 非法软件包名称:"sjavaeclipseeclipsepluginsorg.eclipse.core.databinding.property_1.4.200.v20130515-1857.jar;C:UsersPhilworkspaceBachelor_Thesislibjun

  • 问题内容: 嗨,我在呼叫API时发现以下异常 https://abc_xyz.stg.myweb.com/api/AuthorizedUser?username=admin&password=admin java.security.cert.CertificateException:非法的给定域名 使用Jersey从服务器获取响应时。当我收到邮递员的回复时,一切都很好。 为什么是非法域名,浏览器是

  • 我遇到了下一个问题: 我试图运行我自己的和美丽的doclet在控制台(Windows 7): 这让我想到了一大堆例外: (总是同一个)。 然后,我在StackOverflow中发现有人说这是一个带有注释的第三方库问题(StackOverFlow:为什么我在生成javadocs时会得到一个ClassCastExctive?)。解决方案似乎是将那些带有注释的库添加到类路径中,所以我运行了下一行: 我现

  • 为什么在Oracle DB中出现此错误? cx_Oracle。ORA-01036:非法变量名称/数字

  • 我已经创建了一个API,希望将数据插入oracle数据库。但我收到一条错误消息“error:ORA-01036:非法变量名/编号”。我不知道我犯了什么错误。希望能帮我解决这个问题。先谢谢你。 [错误:ORA-01036:非法变量名/编号]{errorNum:1036,偏移量:0}

  • 问题内容: 我在面向对象的编程类中为小行星游戏创建了一个小行星字段,但收到非法字符错误:“ \ u200b”。该问题似乎在第12行上发生。(import java.awt.Point;与公共类Asteroid之间的行扩展了PolyBlob) 问题答案: 是Unicode中的“零宽度空间”。 您应该删除第12行(空白行),保存文件,重新添加空白行并再次保存。使用简单的文本编辑器。 如果不能解决问题,