Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 在BitBucket repo中托管可执行的.jar文件,或者自动将可执行的.jar文件从git打包到本地文件夹中_Java_Git_Bitbucket_Packaging_Launcher - Fatal编程技术网

Java 在BitBucket repo中托管可执行的.jar文件,或者自动将可执行的.jar文件从git打包到本地文件夹中

Java 在BitBucket repo中托管可执行的.jar文件,或者自动将可执行的.jar文件从git打包到本地文件夹中,java,git,bitbucket,packaging,launcher,Java,Git,Bitbucket,Packaging,Launcher,我试图用Java创建一个可以调用可执行的.jar文件的启动程序应用程序。一种简单的方法是将可执行的.jar文件托管在云实例中,启动程序应用程序只需将.jar文件从那里下载到用户的本地文件夹中。困境在于缺少云服务或可以承载jar文件的服务器 作为一种解决方法,我认为我可以将jar文件托管在BitBucket中,而启动程序应用程序将从中下载可执行文件。不过,我认为这有点不合常规,因为它主要用于源代码的版本(如果我错了,请纠正我)。此外,我不确定是否可以调用FTP或从那里下载文件(可能通过BitBuc

我试图用Java创建一个可以调用可执行的.jar文件的启动程序应用程序。一种简单的方法是将可执行的.jar文件托管在云实例中,启动程序应用程序只需将.jar文件从那里下载到用户的本地文件夹中。困境在于缺少云服务或可以承载jar文件的服务器

作为一种解决方法,我认为我可以将jar文件托管在BitBucket中,而启动程序应用程序将从中下载可执行文件。不过,我认为这有点不合常规,因为它主要用于源代码的版本(如果我错了,请纠正我)。此外,我不确定是否可以调用FTP或从那里下载文件(可能通过BitBucket API,可能?)

另一个选项是,可以让launcher应用程序从git repo创建可执行的jar文件,并将包可执行的jar文件下载到用户的文件夹中,然后从那里调用。如果这是可能的,我将不胜感激任何导致这一选择


谢谢

是的,您可以将二进制文件推送到github(从bitbuket获取原始内容很困难,您的请求需要有身份验证和其他功能)

这是

在这里复制,以防被删除

如何逐步为github项目创建maven存储库 将项目克隆到单独的文件夹中 (注:替换组织和项目)

git克隆git克隆git@github.com:ORGANIZATION/PROJECT.git我的存储库

将cd放入其中 cd我的存储库

创建一个新分支(此处命名为repository) git分支存储库

转到那个分支 git签出存储库

删除所有文件 rm-rf文件1文件2文件3。。等

在该目录中安装jar (注意:替换您的\u组、您的\u工件、您的\u版本和您的\u JAR\u文件)

mvn安装:安装文件-DgroupId=您的_组-DartifactId=您的_工件-Dversion=您的_版本-Dfile=您的_JAR_文件-dpackage=JAR-DgeneratePom=true-DlocalRepositoryPath=-DcreateChecksum=true 您的_JAR_文件应该指向一个现有的JAR文件,这就是为什么最好在另一个文件夹中创建您的存储库分支,这样您就可以在/YOUR/project/path/target/artifact-x.y.z.JAR中引用现有的JAR

添加所有生成的文件、提交和推送 git add-A.&git提交-m“发布版本X.Y.Z”

git推送源存储库

从不同的项目引用您的jar 您刚刚创建的存储库url>


第二个选项也是一个很好的方法,因为用户将始终获得更新的内容,但这将增加构建时间,具体取决于您的用例。

一般来说,将构建产品存储在Git存储库中不是一个好主意。一般来说,构建产品很大,压缩效果很差(特别是已经压缩的JAR文件),并且不需要进行版本控制。这正是您不希望从Git存储库中看到的行为

虽然您确实可以做到这一点,但您可能会发现Bitbucket不希望为此目的托管Git存储库,然后您必须找到替代解决方案。您最好将这些资产托管在云存储桶中,甚至在静态服务器上,并使用HTTPS下载。如果这是不可实现的,你需要考虑这是为什么,并寻找解决它。 如果这些JAR文件是您已经在Bitbucket上托管的软件版本的构建产品,那么使用Bitbucket的标准发布资产功能就可以了。您只是不想使用Git存储库,因为它比静态资产要昂贵得多


您也不想使用FTP,因为(a)它比HTTPS慢,(b)由于人们不遵守规范,不可能将TLS与之一致使用。如果您在未经完整性检查的情况下通过未加密的连接下载数据,然后执行该数据,则您的软件将存在可利用的安全漏洞。

如果我要通过静态服务器托管,则我的本地计算机必须全天候运行,以便用户可以从那里获取文件?此外,如果希望不时更新或添加jar文件,是否仍然建议这样做?谢谢,即使您不时地更改Git存储库,也不建议使用Git存储库来实现这一点。生成产品不属于存储库。静态服务器,无论是云服务器还是其他服务器,都更好。这是可以通过Java实现自动化的吗?我想我可以开发一个GUI,它可以自动将二进制文件从本地推送到bitbucket存储库,并在推送新版本时在用户的本地更新二进制文件?是的,可以使用java轻松完成,您可以从github拉/推/到github。