gpt4 book ai didi

java - 网 bean 11 : multiple sources in a Java project

转载 作者:行者123 更新时间:2023-12-01 20:11:56 26 4
gpt4 key购买 nike

我试图在 Java 项目的多个位置拥有多个包层次结构。进一步解释一下:我们自己的软件位于com.company.V2.*包中。我现在想添加这些外部存储库:

但与以前版本的 Netbeans 不同,似乎无法为这些单独的包指定多个目录。在项目属性下,有一个设置源文件夹,这是com.company.V2.*的位置层次结构是。没有办法说“对于 com.company 看/dir1/dir2;”对于 org.freedesktop.dbus,请查看/dir4/dirZ 等。显然,Netbeans可以做到这一点,因为例如可以找到 java.lang.* 层次结构中的类。

有两个后果:

  • 构建时 Maven 找不到源。
  • 当我按住 Control 单击时,Netbeans 找不到源代码,并在编辑器窗口中显示多个与参数错误等方法相关的错误。

我已将两个外部存储库 check out 到项目根目录中。我通过将以下内容添加到 POM 修复了 Maven 问题:

        <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>dbus-java/dbus-java/src/main/java</source>
<source>kk-dbus-nm-java/src/main/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

但这并不能修复编辑器窗口错误。它甚至没有正确修复 Maven 问题,因为每次源代码更改后都需要清理和重建(shift-F11);否则我会收到运行时错误,这表明 Maven 并不总是在同一个地方找到东西:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: org.freedesktop.dbus.connections.impl.DBusConnection.addSigHandler
at com.company.V2.net.Wifi.openBusConnection(Wifi.java:38)
at com.company.V2.net.Wifi.<clinit>(Wifi.java:23)

解决所有这些问题的一种方法是使用符号链接(symbolic link),以便 Maven 和 Netbeans 看到一个层次结构中的所有包,但遗憾的是我们必须支持 Windoze/NTFS 上的开发人员,并且在典型的 MS 方式中,符号链接(symbolic link)的简单问题变得可笑Windoze下比较复杂。我已经创建了符号链接(symbolic link),它们解决了上面给出的所有问题,但我更喜欢一种“正确”的解决方案,而不是涉及一种黑客解决方法的解决方案。

最佳答案

为了其他人的观看,这是我迄今为止最好的。

我的项目实际上只直接依赖于org.freedesktop.NetworkManager,而后者又依赖于org.freedesktop.dbus。所以在我的项目 pom.xml 中我有:

<repositories>
<repository>
<id>kk-dbus-nm-java</id>
<name>NetworkManager</name>
<url>file:///home/myself/projects/kk-dbus-nm-java</url>
</repository>
</repositories>

<dependency>
<groupId>kkdev.dbus</groupId>
<artifactId>org.freedesktop</artifactId>
<version>1.0-KKDev</version>
</dependency>

那么/home/myself/projects/kk-dbus-nm-java/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>kkdev.dbus</groupId>
<artifactId>org.freedesktop</artifactId>
<version>1.0-KKDev</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.github.hypfvieh</groupId>
<artifactId>dbus-java</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>

关于java - 网 bean 11 : multiple sources in a Java project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58965041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com