Maven系列 8.Maven发布

Gradle8+遇到的糟心破事,如何发布到本地maven仓库 在我这里的话,是发布gradle-jps-spring-boot-starter,然后from componets.java是指定打包方式,后面跟的是说使用当前类路径下的资源生成包里的pom等文件。在这里的话,我指定的是我自己用的本地maven仓库的路径。这样就能成功发布到你自己需要的路径下了。在使用gradle8.12 和java21时,遇到了gradle默认发布jar到c盘.m2目录下的问题,甚是苦恼。最后在翻阅了gradle的文档之后发现,如果想要发布到D盘自定义的maven仓库下,需要指定路径。 阅读详情
8.Maven发布
  与Nexus集成
  存储库管理器是企业中Maven部署的关键部分。存储库管理器充当公共存储库的代理,促进工件共享和团队协作,确保构建稳定性,并实现企业中使用的工件的管理。
  Nexus是来自Sonatype的一个流行的开源存储库管理器。它是一个Web应用程序,允许您维护内部存储库和访问外部存储库。它允许通过单个URL对存储库进行分组和访问。这使得存储库管理员可以在幕后添加和删除新的存储库,而无需开发人员更改其计算机上的配置。此外,它还为使用Maven站点和工件搜索功能生成的站点提供主机功能。
  在我们考虑将Maven与Nexus集成之前,您需要在本地计算机上安装Nexus。 Nexus是作为归档分发的,它附带了一个Jetty实例。从Sonatype的网站www.sonatype.org/nexus/go/下载Nexus发行版(适用于Windows的.zip版本)。在撰写本文时,Nexus的2.10.0-02版本可用。解压缩文件,将内容放在计算机上。在本书中,我们假定内容位于C:\ tools \ nexus文件夹中。 
    注意大多数企业通常在中央服务器上安装并提供存储库管理器。如果您已经可以访问存储库管理器,请跳过此部分安装。

 在管理员模式下启动命令行,并导航到位于C:\ tools \ nexus \ nexus-2.10.0-02下的bin文件夹。然后运行命令nexus install。您将看到成功消息,如图8-1所示。这将安装使Jetty运行的本机服务包装器。


图8-1。 安装Nexus时显示成功消息
  
     注意Nexus 2.10需要JRE 1.7才能正常工作。 确保您的本地计算机上安装了1.7版本的JDK / JRE。 此外,请确保JAVA_HOME指向JDK的版本1.7。
   在同一命令行上,运行命令nexus start启动Nexus。 运行此命令的结果如图8-2所示。

     图8-2。 启动Nexus
   默认情况下,Nexus在端口8081上运行。启动Web浏览器并导航到位于http:// localhost:8081 / nexus的Nexus。 图8-3显示了Nexus启动屏幕。 使用用户名admin和密码admin123登录和浏览Nexus。


图8-3。 Nexus启动屏幕
  现在Nexus已经安装,让我们修改位于C:\ apress \ gswm-book \ chapter8下的gwsm项目。您将首先在pom.xml文件中添加一个distributionManagement元素,如清单8-1所示。此元素用于声明部署项目工件时的位置。存储库元素指示将部署已释放工件的位置。同样,snapshotRepository元素标识将存储项目的SNAPSHOT版本的位置。

  清单8-1。具有distributionManagement的pom.xml

<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/maven-v4_0_0.xsd">  
<modelVersion>4.0.0
</modelVersion>        
<!-- Content removed for brevity -->        
<distributionManagement>           
<repository>                
<id>nexusReleases
</id>
<name>Releases
</name>        
<url>http://localhost:8081/nexus/content/repositories/releases
</url>           
</repository>           
<snapshotRepository>              
<id>nexusSnapshots
</id>              
<name>Snapshots
</name>              
<url>http://localhost:8081/nexus/content/repositories/snapshots
</url>           
</snapshotRepository>        
</distributionManagement>
<!-- Content removed for brevity -->
</project>
Note开箱即用,Nexus附带了Releases和Snapshots存储库。默认情况下,SNAPSHOT工件将存储在Snapshots Repository中,而发布工件将存储在Releases存储库中。
  像大多数存储库管理器一样,部署到Nexus是一种受保护的操作。您在settings.xml文件中提供与Nexus交互所需的凭据。
  清单8-2显示了settings.xml文件和服务器信息。提供开箱即用的密码deployment123的Nexus部署用户。请注意,在服务器标记(nexusReleases和nexusSnapshots)中声明的标识必须与pom.xml文件中声明的存储库和snapshotRepository的标识相匹配。使用清单8-2中的代码替换C:\ Users \ << USER_NAME >> \。m2文件夹中的settings.xml文件的内容。
  清单8-2。 Settings.xml具有服务器信息的文件
<?xml version="1.0" encoding="UTF-8" ?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

<servers>   
<server>      
<id>nexusReleases
</id>      
<username>deployment
</username>      
<password>deployment123
</password>   
</server>   
<server>      
<id>nexusSnapshots
</id>      
<username>deployment
</username>      
<password>deployment123
</password>   
</server>
</servers>
</settings>
  以下是与Nexus交互的配置步骤。在命令行中,在目录C:\ apress \ gswm-book \ chapter8 \ gswm下运行命令mvn deploy。成功执行命令后,您将在Nexus下的http:// localhost:8081 / nexus / content / repositories / snapshots / com / apress / gswmbook / gswm / 1.0.0-SNAPSHOT /下看到SNAPSHOT工件,如图所示图8-4。


    图8-4。 Nexus下的SNAPSHOT工件

项目发布
  发布项目是一个复杂的过程,它通常包括以下步骤:  
    验证本地机器上没有未提交的更改。
    从pom.xml文件中的版本中删除SNAPSHOT。
    确保项目未使用任何SNAPSHOT依赖项。
    检入修改的pom.xml文件到您的源代码控制。
    创建源代码的源代码控制标签。
    构建新版本的工件,并将其部署到存储库管理器。
    增加trunk的pom.xml文件中的版本,并准备下一个开发周期。
  Maven有一个发布插件,它提供了一个标准机制来执行上述步骤并释放项目工件。正如你所看到的,作为发布过程的一部分,Maven与源代码控制系统进行了大量的交互。在本节中,您将使用Subversion(SVN)作为源代码控制系统。 Maven和SVN之间的典型交互如图8-5所示。 SVN服务器包含包含企业项目的存储库。 Maven版本通常在开发人员或构建机器上执行。 Maven需要在这样的机器上安装SVN命令行工具。 SVN命令行工具允许Maven与SVN交互并执行诸如检出代码,创建标签等操作。

图8-5。 Maven和Subversion之间的交互
  在深入了解Maven发布过程之前,您需要完成以下步骤,使本地机器准备就绪: 
    在本地机器上安装Subversion服务器和SVN命令行工具。
    创建Subversion存储库。
    检查您将要使用到存储库中的项目。  
  Subversion Server命令行工具安装
  有几个开源项目或商业公司提供SVN服务器。在这个项目中,您将使用VisualSVN中的Subversion服务器。
  通过从www.visualsvn.com/downloads/下载64位VisualSVN Server可执行文件来启动安装过程。从图8-6可以看出,服务器可执行文件与SVN命令行工具捆绑在一起。


图8-6。下载VisualSVN服务器  
    注意企业通常将Subversion安装在集中式服务器上并可供使用。如果您已经具有对Subversion服务器的读/写访问权限,则可以跳过Subversion服务器安装步骤。但是,您需要在执行Maven发行版的计算机上安装SVN命令行工具。我们建议VisualSVN的“Apache Subversion命令行工具”,您可以从www.visualsvn.com/downloads/下载和安装。 
  下载后,双击VisualSVN-Server-3.0.0-x64.exe安装文件启动安装屏幕。接受最终用户许可协议,在随后的屏幕上,确保选中“VisualSVN服务器和管理控制台”,并选中“将PND环境变量添加到Subversion命令行工具”选项,如图8所示-7。


图8-7。 VisualSVN服务器设置
  VisualSVN服务器有两种类型:标准版和企业版。标准版提供的功能将满足您在本章中的需求。单击VisualSVN服务器版本屏幕上的标准版按钮。在以下屏幕上,取消选中使用安全连接复选框,如图8-8所示。

图8-8。安装和存储库位置
  在下一个屏幕上,单击安装按钮开始安装。成功安装SVN服务器后,请确保SVN命令行工具已正确安装。为此,请打开一个新命令行并运行命令svn help。您应该看到类似于图8-9所示的输出。

图8-9。运行svn help命令后输出
  创建存储库
  Subversion存储库用于管理文件和文件夹,并跟踪对这些文件和文件夹所做的任何修改。 VisualSVN提供了一个伟大的图形用户界面工具,称为VisualSVN服务器管理器,这使得库的创建和管理轻而易举。在Windows机器上,转到所有程序VisualSVN并启动VisualSVN服务器管理器。按照以下步骤创建新存储库:  
    在服务器管理器的存储库部分下,单击创建新存储库链接。
    在“存储库类型”屏幕中选择常规FSFS存储库选项。点击下一步。
    在图8-10中,输入gswm作为存储库名称。点击下一步。

图8-10。存储库创建        
    在“存储库结构”屏幕中选择单项目存储库选项,如图8-11所示。点击下一步。

图8-11。新的存储库结构
      在“资源库访问权限”屏幕中,接受默认的“所有Subversion用户都具有读/写访问权限”。单击创建。应显示已创建存储库成功消息。单击“完成”。
获取存储库的最后一步是创建一个在gwsm-book存储库上具有读/写访问权限的新用户。按照以下步骤创建新用户: 
    在VisualSVN服务管理器主屏幕上,单击“Subversion身份验证”部分中的创建新用户链接,如图8-12所示。

        图8-12。 Subversion认证部分      
    在“新建用户”窗口中,输入gswm作为用户名,gswm作为密码,如图8-13所示。单击“确定”。


图8-13。新建Subversion用户
  
 检查源代码
 使您的计算机准备好Maven发布的最后一步是将C:\ apress \ gswm-book \ chapter8 \ gswm下的gswm项目检入新创建的存储库。使用命令行,导航到C:\ apress \ gswm-book \ chapter8 \ gswm文件夹,并按顺序运行以下命令: 
    svn checkout http:// localhost / svn / gswm / trunk / C:/ apress / gswm-book / chapter8 / gswm --username gswm --password gswm
    svn add src
    svn add pom.xml
    svn commit -m“Inital commit”
  运行上述命令的输出如图8-14所示。

图8-14。输出从svn初始提交
  使用浏览器,导航到http:// localhost / svn / gswm / trunk。出现提示时,输入用户名gswm和密码gswm,您将看到签入的代码。图8-15显示了预期的浏览器屏幕。

图8-15。项目签入SVN
  
  Maven发布
  使用Maven的发布过程释放工件需要使用两个重要目标:prepare和perform。此外,发布插件提供了一个干净的目标,当事情出错时派上用场。
  准备目标
  准备目标,顾名思义,准备一个项目发布。作为此阶段的一部分,Maven执行以下操作: 
    check-poms:检查pom.xml文件中的版本是否包含SNAPSHOT。
    scm-check-modifications:检查是否有任何未提交的更改。
check-dependency-snapshots:检查pom文件以查看是否存在任何SNAPSHOT依赖性。这是一个最佳实践,您的项目使用已发布的依赖关系。 pom.xml文件中发现的任何SNAPSHOT依赖项都将导致发布失败。
    map-release-versions:当以交互方式运行prepare时,会提示用户提供发布版本。
    map-development-versions:当在交互式模型中运行prepare时,会提示用户下一个开发版本。
    generate-release-poms:生成发布pom文件。
    scm-commit-release:提交将pom文件发布到SCM。
    scm-tag:为SCM中的代码创建发布标签。
    rewrite-poms-for-development:为新的开发周期更新pom文件。
    remove-release-poms:删除为版本生成的pom文件。
    scm-commit-development:提交带有开发版本的pom.xml文件。
    end-release:完成发布的准备阶段。 
  为了方便实现,您将在项目的pom.xml文件中提供SCM信息。清单8-3显示了带有SCM信息的pom.xml文件片段。

  清单8-3。带有SCM信息的pom.xml

<project>  
<modelVersion>4.0.0
</modelVersion>        
<!-- Content removed for brevity -->    
<scm>        
<connection>scm:svn:http://localhost/svn/gswm/trunk
</connection>        
<developerConnection>scm:svn:http://localhost/svn/gswm/trunk
</developerConnection>

<url>http://localhost/svn/gswm/trunk
</url>   
</scm>   
<!-- Content removed for brevity -->
</project>

在本地机器上更新pom.xml文件后,运行以下命令将修改的文件提交到SVN:
svn commit -m“添加了SVN信息”
  运行此命令的输出如图8-16所示。


    图8-16。从运行svn commit的输出
  为了使Maven与SVN服务器成功通信,它需要在服务器上具有写访问权限的凭据。您在settings.xml文件中提供该信息,如清单8-4所示。服务器元素的ID被声明为localhost,因为它必须与SVN主机名匹配。
  清单8-4。 pom.xml与SVN服务器详细信息

<?xml version="1.0" encoding="UTF-8" ?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>

<server>      
<id>nexusReleases
</id>      
<username>deployment
</username>      
<password>deployment123
</password>   
</server>   
<server>      
<id>nexusSnapshots
</id>      
<username>deployment
</username>      
<password>deployment123
</password>   
</server>   
<server>     
<id>localhost
</id>     
<username>gswm
</username>     
<password>gswm
</password>   
</server> 
</servers>
</settings>

现在,您具有Maven准备目标所需的整个配置。 清单8-5显示了运行准备目标的结果。 因为准备目标是以交互模式运行的,Maven将提示您提供发布版本,发布标签或标签以及新的开发版本。 通过对每个提示按Enter键接受Maven的建议默认值。

   清单8-5。 Maven准备命令

C:\apress\gswm-book\chapter8\gswm>mvn release:prepare
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Getting Started with Maven 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.3.2:prepare (default-cli) @ gswm ---
[INFO] Verifying that there are no local modifications...
[INFO]   ignoring changes on: **\release.properties, **\pom.xml.next, **\pom.xml.releaseBackup, **\pom.xml.backup, **\pom.xml.branch, **\pom.xml.tag
[INFO] Executing: cmd.exe /X /C "svn --username gswm --password ***** --no-auth-cache --non-interactive status"
[INFO] Working directory: C:\apress\gswm-book\chapter8\gswm
[INFO] Checking dependencies and plugins for snapshots ...What is the release version for "Getting Started with Maven"? (com.apress.gswmbook:gswm) 1.0.0: :What is SCM release tag or label for "Getting Started with Maven"? (com.apress.gswmbook:gswm) gswm-1.0.0: :What is the new development version for "Getting Started with Maven"? (com.apress.gswmbook:gswm) 1.0.1-SNAPSHOT: :
[INFO] Transforming 'Getting Started with Maven'...---------------------------------------------------------------
[INFO] 
[INFO] Building jar: C:\apress\gswm-book\chapter8\gswm\target\gswm-1.0.0.jar
[INFO] 
[INFO] ------------------------------------------------------------------
[INFO] 
[INFO] BUILD SUCCESS
[INFO] 
[INFO] ------------------------------------------------------------------
[INFO] 
[INFO] Total time: 1.654 s
[INFO] 
[INFO] Finished at: 2014-10-22T23:10:44-06:00
[INFO] 
[INFO] Final Memory: 11M/27M
[INFO] 
[INFO] ------------------------------------------------------------------
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "svn --username gswm --password ***** --no-auth-cache --non-interactive commit --file C:\Users\<<USER_NAME>>\AppData\Local\Temp\maven-scm-203076178.commit --targets C:\Users\<<USER_NAME>>\AppData\Local\Temp\maven
scm-5496549062663519106-targets"
[INFO] Working directory: C:\apress\gswm-book\chapter8\gswm
[INFO] Tagging release with the label gswm-1.0.0...
[INFO] Executing: cmd.exe /X /C "svn --username gswm --password ***** --no-auth-cache --non-interactive copy --file C:\Users\<<USER_NAME>>\AppData\Local\Temp\maven-scm-85876759.commit --revision 6 http://localhost/svn/gswm/trunk http://localhost/svn/gswm/tags/gswm-1.0.0"
[INFO] Working directory: C:\apress\gswm-book\chapter8\gswm
[INFO] Transforming 'Getting Started with Maven'...
[INFO] Not removing release POMs
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "svn --username gswm --password ***** --no-auth-cache --non-interactive commit --file C:\Users\<<USER_NAME>>\AppData\Local\Temp\maven-scm-112170711.commit --targets C:\Users\<<USER_NAME>>\AppData\Local\Temp\maven-scm-2440605286339680080-targets"
[INFO] Working directory: C:\apress\gswm-book\chapter8\gswm
[INFO] Release preparation complete.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 33.711 s
[INFO] Finished at: 2014-10-22T23:10:44-06:00
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
注意,svn命令作为准备目标的一部分被执行。成功完成准备目标将导致创建SVN标记,如图8-17所示。 gswm项目中的pom.xml文件现在将具有版本1.0.1-SNAPSHOT


图8-17。准备执行时创建的SVN标记
  清洁目标
  准备目标执行很多活动,并生成临时文件,如release.properties和pom.xml.releaseBackup,作为其执行的一部分。成功完成后,它会清除这些临时文件。有时,准备目标可能会失败(例如,无法连接到SVN),并使项目处于脏状态。这是释放插件的干净的目标进入了画面。顾名思义,它会删除作为发布执行的一部分生成的任何临时文件。
    注意只有在准备目标失败时,才能使用clean目标。
  执行目标
  执行目标负责从新创建的标签中检出代码,并构建并将释放的代码部署到远程存储库中。
以下阶段作为执行目标的一部分执行: 
    verify-completed-prepare-phases:这验证了在运行执行目标之前已经执行了准备阶段。
    checkout-project-from-scm:从SCM标记中检出已发布的代码。
    run-perform-goal:执行与perform相关联的目标。默认目标是部署。
  在gswm项目上运行perform目标的输出如清单8-6所示。
  清单8-6。 Maven执行命令

C:\apress\gswm-book\chapter8\gswm>mvn release:perform
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------------------------------------------
[INFO] Building Getting Started with Maven 1.0.1-SNAPSHOT
[INFO] ----------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.3.2:perform (default-cli) @ gswm ---
[INFO] Checking out the project to perform the release ...
[INFO] Executing: cmd.exe /X /C "svn --username gswm --password ***** --no-auth-cache --non-interactive checkout http://localhost/svn/gswm/tags/gswm-1.0.0 C:\apress\gswm-book\chapter8\gswm\target\checkout"
[INFO] Working directory: C:\apress\gswm-book\chapter8\gswm\target---------------------------------
[INFO] 
[INFO] Installing C:\apress\gswm-book\chapter8\gswm\target\checkout\target\gswm-1.0.0.jar to C:\Users\<<USER_NAME>>\.m2\repository\com\apress\gswmbook\gswm\1.0.0\gswm-1.0.0.jar
[INFO] 
[INFO] Installing C:\apress\gswm-book\chapter8\gswm\target\checkout\pom.xml to C:\Users\<<USER_NAME>>\.m2\repository\com\apress\gswmbook\gswm\1.0.0\gswm-1.0.0.pom sources.jar to C:\Users\<<USER_NAME>>\.m2\repository\com\apress\gswmbook\gswm\1.0.0\gswm-1.0.0-sources.jar
[INFO] 
[INFO] Installing C:\apress\gswm-book\chapter8\gswm\target\checkout\target\gswm-1.0.0-javadoc.jar to C:\Users\<<USER_NAME>>\.m2\repository\com\apress\gswmbook\gswm\1.0.0\gswm-1.0.0-javadoc.jar
[INFO] 
[INFO]
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ gswm ---
[INFO] Uploading: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/1.0.0/gswm-1.0.0.jar
[INFO] 2/3 KB
[INFO] 3/3 KB
[INFO]
[INFO] Uploaded: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/1.0.0/gswm-1.0.0.jar (3 KB at 13.4 KB/sec)
[INFO] Uploading: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/1.0.0/gswm-1.0.0.pom
[INFO] 2/3 KB
[INFO] 3/3 KB
[INFO]
[INFO] Uploaded: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/1.0.0/gswm-1.0.0.pom (3 KB at 14.5 KB/sec)
[INFO] Downloading: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/maven-metadata.xml
[INFO]
[INFO] Uploaded: http://localhost:8081/nexus/content/repositories/releases/com/apress/gswmbook/gswm/1.0.0/gswm-1.0.0-javadoc.jar (35 KB at 368.5 KB/sec)
[INFO] 
[INFO] BUILD SUCCESS

[INFO] 
[INFO] ----------------------------------------------------
[INFO] 
[INFO] Total time: 3.807 s
[INFO] 
[INFO] Finished at: 2014-10-22T23:26:36-06:00
[INFO] 
[INFO] Final Memory: 17M/42M
[INFO] 
[INFO] ----------------------------------------------------
[INFO] Cleaning up after release...
[INFO] -----------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------
[INFO] Total time: 5.867 s
[INFO] Finished at: 2014-10-22T23:26:36-06:00
[INFO] Final Memory: 8M/19M
[INFO] -----------------------------------------------------------
这完成了1.0.0版本的gswm项目的发布。 该工件最终会出现在Nexus存储库管理器中,如图8-18所示


图8-18。 Nexus与已发布的工件神器

总结

  Nexus等内部存储库管理器允许企业完全采用Maven。 除了担当公共存储库代理之外,它们还支持组件共享和治理。 本章讨论将Maven与Nexus整合,并指导您完成将工件部署到Nexus的过程。 您还学习了Maven的发布过程及其不同的阶段。

Maven发布自己项目到maven中央仓库 上传maven项目到maven中央仓库小记 阅读详情

相关推荐

github上如何发布自己的maven库?

开发过程中经常在maven仓库中使用别人造好的轮子,有没有想过自己也造一个,造福他人也免去自己频繁拷贝库的烦琐,本文主要讲解如何过程github发布自己的maven库。 流程分析 本文主要讲解以下几个步骤 在github上建立自己的代码仓 工程中配置库打包插件 maven平台请求发布库 使用自己发布的依赖库 建立代码仓 建立自己的github账号,并创建自己的工程,这个环节,我想大部分人朋友都已了解,如何有不清楚的可以查阅 创建github工程引导 值得注意的是,仓库名会在发布maven库时对应ar.

茶不思基 953

解决修改项目的包名后maven发布出错的问题

修改了包名以后,发现mvn release;perpare 出错,报以下的错误: [INFO] ----------------------------------------- [ERROR] BUILD FAILURE [INFO] ----------------------------------------- [INFO] Unable to tag SCM Provider ...

eric的学习笔记 913

Maven发布插件使用指南

Maven发布插件使用指南 前置 maven发布插件可以发布产物到 Apache Maven 代码库。Android Gradle 插件会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容。 需要Android Gradle 插件 3.6.0 及更高版本。 Android Gradle 插件 发布内容工件 组件名称 com.android.library AAR components.variant com.android.appl

毕业生笔记的博客 1490

bug记录----Maven项目发布失败

如果一个工件未能从Maven(或其他构建工具)部署,请记下返回的HTTP状态代码。然后在下面检查代码的含义,以及如何诊断和修复问题。代码400-不允许使用方法Nexus已收到您的部署请求,但无法处理,因为它无效。这有两个共同的原因。最常见的原因是您试图将工件重新部署到不允许重新部署的存储库中。检查托管存储库配置中的“部署策略”。如果设置为“禁用重新部署”,则意味着您无法重新部署存储库中已存在的工...

大米666的博客 141

VisualSVN-Server-3.0.0-x64 ,安装文件+keygen

VisualSVN-Server-3.0.0-x64 ,安装文件+keygen VisualSVN Server x64 keygen patch 好东西第一时间分享。keygen支持3.x版本。 好不好?谁用谁知道!!

手把手教你用TLP350驱动IGBT:光耦隔离驱动电路完整设计教程

本文详细介绍了如何使用TLP350光耦隔离驱动电路设计IGBT驱动方案。从TLP350芯片特性分析到驱动电路架构设计,包括信号调理、自举电源和栅极控制网络,再到PCB布局优化和保护电路设计,提供了完整的实战指南。通过实测波形分析和故障排查,帮助工程师快速掌握IGBT驱动电路的设计要点和进阶技巧。

weixin_30566063的博客 825

第一次发布自己的jar包到maven仓库

背景:在清理资源的时候,发现了一个比较好的开源库,但是是在2014年作者写的,比较老,而且好多我想要的功能都没有,所以就想fork出来一个新的工程,更改一下,发布一个新的供大家使用。所以就有了接下来的填坑的过程,耗时一天的时间,终于成功了, 适用:该篇文章适合maven小白发布,现在回头看看,昨天的自己好无知。 大体思想是按照下面这篇文章的思路,但是中间碰到了很多坑,所以在此记

低调的成长 1万+

搭建Dzzoffice 教程

通过以上步骤,您已经成功配置了WEB环境,安装了DzzOffice,并完成了系统设置和应用安装。1.安装包的设置默认是系统盘之外的第二个盘,没有其他盘符的时候则安装在C盘,当主机盘符只有C盘可用的时候,安装时不要使用U盘,否则可能误装到U盘当中。4.如果之前已经安装,再次安装时请确保上次安装已经卸载或者所有文件可读,否则请备份文件,卸载之后再安装。在其他安装环境中,我没有相关的使用经验。3. 保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。

小胡的博客 4950

安装VisualSVN server

链接:官网链接: https://www.visualsvn.com/ 下载页链接: https://www.visualsvn.com/server/download/ 下载文件链接:https://www.visualsvn.com/files/VisualSVN-Server-3.2.3-x64.msi 安装步骤: 这一步是让选择安装的版本,分收费的和免费的,当然安装免费的, 收费

bwlab的博客 8943

树莓派4B+DroneKit实战:手把手教你用Python控制无人机飞行(附避坑指南)

本文提供了一份详尽的树莓派4B与DroneKit配置实战指南,涵盖从硬件选型、软件环境搭建到Python编程控制无人机的完整流程。文章重点解决了ARM架构下的兼容性问题、MAVLink通信配置及端口管理等常见难题,并附带了实用的避坑指南和代码示例,帮助开发者构建稳定可靠的无人机控制系统。

weixin_29056781的博客 410

Burp Suite手工验证CORS漏洞的四步闭环法

CORS(跨域资源共享)是Web应用实现跨域通信的基础机制,其安全本质在于服务端对Origin头的校验逻辑与响应头组合的语义一致性。当服务端错误地返回Access-Control-Allow-Origin: *并配合Access-Control-Allow-Credentials: true,或采用弱校验(如字符串包含匹配)时,将导致敏感数据泄露与凭据劫持风险。该漏洞难以被自动化扫描器发现,因其依赖请求上下文、认证状态及动态策略判断。Burp Suite作为核心工具,需通过构造跨域请求、捕获预检响应、交叉验

weixin_30596343的博客 512

Apache Flink 1.8.0 发布,开源流处理框架

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> Apache Flink 1.8.0...

weixin_34405925的博客 120

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

Gradle 发布Jar到 Maven Central

Gradle 插件可创建一项publish任务,自动将所有 Java、Kotlin 或 Android 库上传到任何 Maven 实例。此插件基于Chris Banes 的初始实现 ,并进行了增强以添加 Kotlin 支持并跟上最新变化。生成后就会的到这个配置,这个配置的内容就是你所需要的 name,pasdword。这里直接复制我的配置即可,所有的变量都是可以改变的。如果你不知道我在说什么请重新查阅阶段一的详细教程,该插件内置了许多插件因此可以直接使用大部分功能。我们需要在里面配置密钥,但是注意不要将。

子墨的日常 2063

医疗工具识别(手术器械计数):基于YOLOv8的智能手术器械管理系统

YOLOv8是Ultralytics公司于2023年推出的最新一代目标检测算法,相比前代YOLOv5,在精度和速度上都有显著提升。Anchor-free检测:不再使用预定义的anchor boxes,简化了检测流程更高效的骨干网络:采用CSPDarknet53作为特征提取网络多尺度特征融合:通过PANet结构实现更好的小目标检测损失函数优化:使用CIoU损失提高边界框回归精度YOLOv8提供了多种规模的模型(n/s/m/l/x),可根据实际需求在精度和速度之间进行权衡。

YOLO 480

[Dify] 如何构建一个带评分功能的 Dify AI 教练系统

本文介绍如何利用Dify开源平台构建具备自动评分功能的AI教练系统。系统通过Prompt设计AI教练角色,使用OpenAPI定义评分工具接口,结合工作流编排实现提问、回答收集、评分和反馈的全流程。文章详细讲解了从AI教练身份设定、多维度评分标准设计到前端可视化展示的实现方法,并提供了可扩展建议,适用于语言训练、面试模拟等多种场景。该系统展示了Dify平台在构建智能化评估应用方面的优势,实现零代码开发专业AI教练解决方案。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 333

Maven精选系列(二):Maven如何发布jar包到Nexus私库

Maven如何发布jar包到Nexus私库 今天博主将为大家分享一下Maven私库搭建及使用,不喜勿喷,如有异议欢迎讨论! 以下所写内容均与以前的文章有联系可以前往博文查看,陈永佳的博客 前言 到这里Maven如何发布jar包到Nexus私库讲解完毕了,请持续关注! 最后 更多参考精彩博文请看这里:《陈永佳的博客》 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿! ...

Mr_chen的博客 4744

AI上推荐 之 AutoInt模型(Transformer开始玩特征交互)

1. 写在前面 这段时间做优化模型的事情,正好和特征交互有关系,这个也是推荐系统里面一直探索的一个方向,从浅层模型的FM, FFM, HOFM, FwFM到深层模型的DNN, PNN, NFM, AFM, DeepFM, DCN, xDeepFM, FiBiNet等,而这次正好借着这次机会, 多看一些有关于特征交叉方向的模型paper, 把一些新的模型或者较为前沿的思想融入进来。 上一篇的FiBinet模型就是在特征交互上一个非常有意思的探索, 通过SENET动态选择有用的交互特征, 然后再用一个双线性交互

Miracle8070 5724

发布到Maven仓库

原文地址:Chapter 36. Maven Publishing (new) ,基于Gradle Build Tool 3.4.1的,后期可能会修改。文章最后面写了一下自己的总结。

Egos 的专栏 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

AndroidStudio使用Maven Publish Plugin发布工件到Maven仓库

本文介绍了如何在Android Studio中使用Maven Publish Plugin插件将工件发布到私服仓库。文章更新于2025年9月15日,基于Gradle 8.0和AGP 8.1.0环境。主要内容包括:Maven Publish插件的引入方式、出版物(Publications)的配置方法、发布程序组件的支持情况。重点讲解了在Android项目中的两种发布方式:手动指定工件并配置pom文件,以及通过配置自动获取工件和生成依赖关系。文章还提供了详细的代码示例,展示了如何配置仓库认证信息、定义发布参数以

yingaizhu的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

maven-publish 如何发布项目到maven

项目发布到maven仓库并使用

blankmargin的博客 1014

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Maven系列3——使用Maven打包来发布web应用

Maven系列3——使用Maven打包来发布web应用

做一个善良的人,做好自己的事,如果愿意,再发一份光。 918

如何发布Android库到Maven中心仓库

本文用于记录如何将自己的库上传到maven中心仓库,包括sonatype账号建立,密钥上传及gradle配置及任务执行

Hanly Jiang的专栏 5162

【Maven】Jar发布到maven中心仓库的步骤

Jar发布到maven中心仓库的步骤,记录一下。

tanpenggood 1088
上一篇: Maven系列 7.文档和报告
下一篇: PHP中的类型:不要担心,要快乐
mobdroid
博客等级 码龄10年 1粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值