Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 开发一个有两个名字的项目?_Java_Git_Project Management - Fatal编程技术网

Java 开发一个有两个名字的项目?

Java 开发一个有两个名字的项目?,java,git,project-management,Java,Git,Project Management,我正在开发一个开源项目,它既可以用一个名字为一家公司命名,也可以用另一个名字为社区命名。我希望能够轻松地将更改从一个传递到另一个,但是名称和许可证是不同的,所以我不知道如何将修改从一个应用到另一个。让我们举一个例子: ProjectOne : file : src/main/projectone.main : -> /** This file is part of ProjectOne... **/ -> contentA ProjectTwo : file : src/main/

我正在开发一个开源项目,它既可以用一个名字为一家公司命名,也可以用另一个名字为社区命名。我希望能够轻松地将更改从一个传递到另一个,但是名称和许可证是不同的,所以我不知道如何将修改从一个应用到另一个。让我们举一个例子:

ProjectOne :
file : src/main/projectone.main :
-> /** This file is part of ProjectOne... **/
-> contentA

ProjectTwo :
file : src/main/projecttwo.main :
-> /** This file is part of ProjectTwo... **/
-> contentA

现在,考虑我正在修改项目二的内容:

contentA -> contentB
我得到:

ProjectOne :
file : src/main/projectone.main :
-> /** This file is part of ProjectOne... **/
-> contentA

ProjectTwo :
file : src/main/projecttwo.main :
-> /** This file is part of ProjectTwo... **/
-> contentB
我想能够很容易地修改ProjectOne,但保留自己的许可证,包和项目名称

ProjectOne :
file : src/main/projectone.main :
-> /** This file is part of ProjectOne... **/
-> contentB

ProjectTwo :
file : src/main/projecttwo.main :
-> /** This file is part of ProjectTwo... **/
-> contentB

我的项目使用Maven作为依赖项,使用Netbeans作为IDE,使用git管理修订。是否有一个技巧(分支、插件…)可以帮助我做到这一点?

在内容目录(文件夹)中创建项目名称目录

示例:您有两个项目名为:

       1. Proj1 
       2. Proj2
您有一个名为content的内容目录,在其中存储许可证文件。现在你要做的是在内容目录中创建两个目录,即

       content / proj1 / license.htm
               / proj2 / license.htm
以同样的方式,无论您想在项目中区分什么,都要使它们的目录具有相同的名称,即proj1和proj2。您可能需要这样做,在图像,标志,背景和许多其他事情,根据项目。制作一个属性文件,在其中放置一个字段,在该字段中必须指定项目或生成的任何一个名称,即proj1或proj2,并且必须动态地决定使用哪个名称


这样,静态内容将不同,但逻辑和代码将相同

只需将名称和许可证放在一个单独的文件中,只使用一个主干,然后使用正确的名称/许可证文件发布两个版本。我建议使用一个脚本自动化发布过程,该脚本采用正确的名称/许可证文件和最终版本,并生成自定义版本。

您也可以尝试开发一个脚本,替换源代码/文件名中对项目名称的任何引用。

为什么不将项目分成两个版本?好,这似乎是个好的开始。所以我把这个项目交出来了。然后,我将fork的所有文件中的每个“ProjectOne”都更改为“ProjectTwo”。然后,我希望每个其他的修改都能从一个项目重新剪切到另一个项目,除了最初的名称更改。我该怎么做?如果你分叉,你将结束合并新功能到两者。然后一个新的特性会更改这些文件,然后将被传播。一个建议是只在一个项目上工作,并为应该复制的内容编写脚本(最后是复制/粘贴操作,对吗?),因为您不在ProjectB上编码。这有意义吗?嗯,也许你是对的。至少,只要这两个版本没有其他区别,它就可以做到这一点。谢谢你帮我想清楚。编辑:有人建议我使用一个项目作为另一个项目的依赖。也许我应该考虑一下?樱桃采摘可以做到这一点,但你可能更希望依赖补丁功能……如果这么简单就好了。从我对这个问题的理解来看,许可证似乎包含在文件的javadoc头中……是的,没错。许可证位于每个文件中,项目名称显示在包名中…许可证文本可以通过一些脚本代码(grep+cat+sed)轻松添加。。。你是在linux下开发的吗?看看:。如果您是在windows下开发的,那么请祈祷VisualStudio/Eclipse具有这样的编辑功能!:-)幸运的是我在Linux下。我想你是对的。我可以有我的项目与2个分支,只是一个脚本转换文件,使他们适合其他项目,更换名称,许可证等,从每个文件。谢谢!我不知道我明白你的意思。如果我这样做的话,除了项目名称之外,我将在这两个项目中一直拥有相同的内容,不是吗?不,不,我已经编辑了我的ans来给你简要的描述。好的,我明白你的意思了。确实,区分文件是一个好主意,但我还需要更改源文件的内容(javadoc头)…这也(我的意思是更改内容)可以很容易地做到。我们正以这种方式管理项目,这在许多方面对我们有所帮助。所以我就说。无论你考虑哪种方式都很好,但这也是你可以考虑的方式之一。就这样。谢谢。无论如何,我会记住这一点。也许如果我的脚本达到极限,我会使用你的方法。无论如何谢谢你!