推送 project.properties 问题

Posted

技术标签:

【中文标题】推送 project.properties 问题【英文标题】:Pushing project.properties problems 【发布时间】:2019-08-31 01:55:28 【问题描述】:

当我尝试在 Java 项目中与组合作时,我们总是需要修复库,因为它使用最后一个用户的目录结构(例如,person1 的库位于 c:/documents 中,而 person2 的库位于在 c:/downloads 中,person2 将得到一个 library not found 错误,因为它正在 c:/documents 中查找)

我注意到那些对库的引用存储在 nbproject/project.properties 中,我尝试将其添加到 gitignore,但我读过 project.properties 应该从 gitignore 中排除。

在 project.properties 文件中显示了这个

file.reference.byte-buddy-1.8.15.jar-1=C:\\Users\\Cedric\\Desktop\\byte-buddy-1.8.15.jar
file.reference.byte-buddy-agent-1.8.15.jar-1=C:\\Users\\Cedric\\Desktop\\byte-buddy-agent-1.8.15.jar
file.reference.eclipselink.jar-1=C:\\Users\\Cedric\\Desktop\\eclipselink.jar
file.reference.javax.annotation_1.2.0.v201602091430.jar-1=C:\\Users\\Cedric\\Desktop\\javax.annotation_1.2.0.v201602091430.jar
file.reference.javax.persistence.jar-1=C:\\Users\\Cedric\\Desktop\\javax.persistence.jar
file.reference.jfoenix-9.0.8.jar-1=C:\\Users\\Cedric\\Desktop\\jfoenix-9.0.8.jar
file.reference.mockito-core-2.21.0.jar-1=C:\\Users\\Cedric\\Desktop\\mockito-core-2.21.0.jar
file.reference.objenesis-2.6.jar-1=C:\\Users\\Cedric\\Desktop\\objenesis-2.6.jar
#Mon Apr 08 17:43:30 CEST 2019
javadoc.splitindex=true
build.classes.excludes=**/*.java,**/*.form
@@ -58,7 +66,26 @@ javafx.application.implementation.version=1.0
main.class=com.javafx.main.Main
dist.javadoc.dir=$dist.dir/javadoc
javadoc.additionalparam=
javac.classpath=$file.reference.Downloads-Microsoft_SQL_Server_JDBC_Driver_2.0\:$file.reference.byte-buddy-1.8.15.jar\:$file.reference.byte-buddy-agent-1.8.15.jar\:$file.reference.eclipselink.jar\:$file.reference.javax.annotation_1.2.0.v201602091430.jar\:$file.reference.javax.persistence.jar\:$file.reference.mockito-core-2.21.0.jar\:$file.reference.objenesis-2.6.jar\:$libs.eclipselink.classpath\:$file.reference.jfoenix-9.0.8.jar\:$libs.junit_4.classpath
javac.classpath=\
    $file.reference.Downloads-Microsoft_SQL_Server_JDBC_Driver_2.0:\
    $file.reference.byte-buddy-1.8.15.jar:\
    $file.reference.byte-buddy-agent-1.8.15.jar:\
    $file.reference.eclipselink.jar:\
    $file.reference.javax.annotation_1.2.0.v201602091430.jar:\
    $file.reference.javax.persistence.jar:\
    $file.reference.mockito-core-2.21.0.jar:\
    $file.reference.objenesis-2.6.jar:\
    $libs.eclipselink.classpath:\
    $file.reference.jfoenix-9.0.8.jar:\
    $libs.junit_4.classpath:\
    $file.reference.byte-buddy-1.8.15.jar-1:\
    $file.reference.byte-buddy-agent-1.8.15.jar-1:\
    $file.reference.eclipselink.jar-1:\
    $file.reference.javax.annotation_1.2.0.v201602091430.jar-1:\
    $file.reference.javax.persistence.jar-1:\
    $file.reference.jfoenix-9.0.8.jar-1:\
    $file.reference.mockito-core-2.21.0.jar-1:\
    $file.reference.objenesis-2.6.jar-1
compile.on.save.unsupported.javafx=true
javadoc.noindex=false
javafx.deploy.backgroundupdate=false

我的猜测是第一个文件引用导致了问题,但我不知道如何解决这个问题。

【问题讨论】:

【参考方案1】:

您不需要从版本控制中排除 project.properties 文件。只需更改将库添加到项目的方式即可。

正如您所提到的,您和您的团队成员正在为库维护单独的文件夹。不要那样做。在您的项目中创建一个lib 文件夹,并将所有(当前)需要的库放在该文件夹中。例如,您的项目文件夹结构应如下所示,

your-project-root-folder
    |-- build
    |-- dist
    |-- nbproject
    |-- lib         <====== the folder which contains all required libraries
    |-- src
    |-- test
    |-- web
    |-- build.xml
    |-- .gitignore

现在在 Netbeans 中,您需要选择 lib 文件夹作为源库目录。按照下面的说明进行操作

然后浏览到您保存 Project 文件夹的路径,然后从lib 文件夹中选择所需的库,如下所示

假设您的项目路径是C:/users/user/Documents/NetbeansProjects/your-project-root-folder

从那里选择lib

并确保您选择了右侧的相对路径单选按钮。

现在这会将部分(相对)路径添加到project.properties 文件。以这种方式添加库后,您不再需要担心将库文件夹从 C:/Documents 切换到 C:/Downloads,反之亦然。

据我所知,我们从版本控制中排除了builddistnbproject/private/ 目录。由于这些文件夹/文件在我们每次构建项目时都会不断重新生成。

这是我在版本控制中维护 Netbeans 项目的方式供您参考。我的.gitignore 文件如下所示

/build
/dist
/nbproject/private/

【讨论】:

以上是关于推送 project.properties 问题的主要内容,如果未能解决你的问题,请参考以下文章

项目没有 project.properties 文件

如何使用或设置 sonar-project.properties 文件?

如何声明对cordova project.properties 文件的依赖关系?

不允许 Sonarqube.project.properties 文件

如何在 project.properties 文件中使用 proguard.config 设置?

将 project.properties 文件传递​​给声纳扫描仪