導航:首頁 > IDC知識 > maven遠程伺服器

maven遠程伺服器

發布時間:2020-12-03 12:14:59

1、maven 可以配置部署到遠程tomcat嗎

首先,配置tomcat的manager
編輯遠程tomcat伺服器下的conf/tomcat-users.xml,在末尾增加(其實只要拉到文件末尾,去掉注釋改一下就可以了)
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-script"/>
<user username="root" password="password" roles="manager-gui"/>

將上面的password改為自己的密碼,注意對於tomcat9來說,不能同時賦予用戶manager-script和manager-gui角色。
保存tomcat-users.xml。
在tomcat伺服器的conf/Catalina/localhost/目錄下創建一個manager.xml文件,寫入如下值:
<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

保存退出。

2、eclipse 怎麼搭建遠程maven

eclipse集成maven後可以用maven命令把web項目自動部署到tomcat,具體步驟如下
一、修改tomcat-users.xml配置文件打開tomcat管理用戶,配置文件位置在tomcat目錄/conf下。修改如下圖

二、配置maven的settings.xml配置文件,添加server節點指定伺服器的用戶名、密碼,用戶名、密碼要與tomcat-users.xml文件中配置的用戶名、密碼一致。配置如下

三、打開項目的pom文件,在plugins tab中添加tomcat-maven-plugin,然後點擊pom.xml tab找到添加的tomcat-maven-plugin添加configuration配置,如下

url屬性值為tomcat的manager頁地址,server屬性的值與settings.xml文件中配置的server的id一致,path即發布的應用名稱。
經過上邊的配置以後已經滿足遠程部署的要求,下邊說一下eclipse中指定遠程部署的步驟
一、首先啟動tomcat
二、在eclipse中選擇所要部署的project右鍵,點擊Run Configurations
三、在彈出的屬性頁中的Goals屬性設為tomcat:deploy然後點擊run即可,發布成功後控制台會提示Build Success。如下

3、如何讓java項目在遠程伺服器,實現多個人同時開發?用Maven能否實現?聽說要CVS?

你說的這個是項目的協同開發,Maven是項目構建用的,多人協同開發需要「代碼版本控制軟體」,可以使用CVS、SVN或者GIT都行。

4、maven到底怎麼才能把文件用ssh的方式復制到遠程伺服器上去

重點說下第2個需求,在Maven中可以調用ant插件,如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<property name="cd" value="${project.build.directory}/${project.build.finalName}" />
<ant antfile="${basedir}/build.xml">
<target name="deploy"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.42</version>
</dependency>
</dependencies>
</plugin>

build.xml 如下:
<?xml version="1.0" ?>
<project name ="WEB" default ="deploy" basedir =".">

<property environment="env"/>

<target name="deploy">
<sshexec host="192.168.1.100" username="root" password="pass" trust="true"
command="rm -rf /data/work; rm -rf /data/rest-web-standalone.war;">
</sshexec>

<scp file="${project.build.directory}/rest-web-standalone.war" todir="root:[email protected]:/data/rest-web-standalone.war" trust="true" />

</target>

</project>

5、maven遠程倉庫jar包有多大

Nexus介紹
Nexus 是Maven倉庫管理器,如果你使用Maven,你可以從Maven中央倉庫 下載所需要的構件(artifact),但這通常不是一個好的做法,你應該在本地架設一個Maven倉庫伺服器,在代理遠程倉庫的同時維護本地倉庫,以節省帶寬和時間,Nexus就可以滿足這樣的需要。此外,他還提供了強大的倉庫管理功能,構件搜索功能,它基於REST,友好的UI是一個extjs的REST客戶端,它佔用較少的內存,基於簡單文件系統而非資料庫。這些優點使其日趨成為最流行的Maven倉庫管理器。

下載和安裝
你可以從http://nexus.sonatype.org/downloads/ 下載最新版本的Nexus,筆者使用的是1.3.0版本。
Nexus提供了兩種安裝方式,一種是內嵌Jetty的bundle,只要你有JRE就能直接運行。第二種方式是WAR,你只須簡單的將其發布到web容器中即可使用。

Bundle方式安裝
解壓nexus-webapp-1.3.0-bundle.zip 至任意目錄,如D:\dev_tools ,然後打開CMD,cd至目錄D:\dev_tools\nexus-webapp-1.3.0\bin\jsw\windows-x86-32 ,運行Nexus.bat 。你會看到Nexus的啟動日誌,當你看到「Started [email protected]:8081」之後,說明Nexus啟動成功了,然後打開瀏覽器,訪問http://127.0.0.1:8081/nexus,你會看到如下的頁面:

要停止Nexus,Ctrl+C即可,此外InstallNexus.bat可以用來將Nexus安裝成一個windows服務,其餘的腳本則對應了啟動,停止,暫停,恢復,卸載Nexus服務。

WAR方式安裝
你需要有一個能運行的web容器,這里以Tomcat為例,加入Tomcat的安裝目錄位於D:\dev_tools\apache-tomcat-6.0.18 ,首先我們將下載的nexus-webapp-1.3.0.war 重命名為nexus.war ,然後復制到D:\dev_tools\apache-tomcat-6.0.18\webapps\nexus.war ,然後啟動CMD,cd到D:\dev_tools\apache-tomcat-6.0.18\bin\ 目錄,運行startup.bat 。一切OK,現在可以打開瀏覽器訪問http://127.0.0.1:8080/nexus,你會得到和上圖一樣的界面。

代理外部Maven倉庫
登陸
要管理Nexus,你首先需要以管理員身份登陸,點擊界面右上角的login,輸入默認的登錄名和密碼:admin/admin123,登陸成功後,你會看到左邊的導航欄增加了很多內容:

這里,可以管理倉庫,配置Nexus系統,管理任務,管理用戶,角色,許可權,查看系統的RSS源,管理及查看系統日誌,等等。你會看到Nexus的功能十分豐富和強大,本文,筆者只介紹一些最基本的管理和操作。

代理Maven中央倉庫
點擊左邊導航欄的Repositories,界面的主面板會顯示所有一個所有倉庫及倉庫組的列表,你會看到它們的Type欄位的值有group,hosted,proxy,virtual。這里我們不關心virtual,只介紹下另外三種類型:
hosted,本地倉庫,通常我們會部署自己的構件到這一類型的倉庫。
proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。
group,倉庫組,用來合並多個hosted/proxy倉庫,通常我們配置maven依賴倉庫組。
由此我們知道,我們需要配置一個Maven中央倉庫的proxy,其實Nexus已經內置了Maven Central,但我們需要做一些配置。點擊倉庫列表中的Maven Central,你會注意到它的Policy是release,這說明它不會代理遠程倉庫的snapshot構件,這是有原因的,遠程倉庫的snapshot版本構件不穩定且不受你控制,使用這樣的構件含有潛在的風險。然後我們發現主面板下方有三個Tab,分別為Browse,Configuration和Mirrors,我們點擊Configuration進行配置,你現在需要關心的是兩個配置項:「Remote Storage Location」為遠程倉庫的地址,對於Maven Central來說是http://repo1.maven.org/maven2/;「Download Remote Indexes」顧名思義是指是否下載遠程索引文件,Maven Central的該欄位默認為False,這是為了防止大量Nexus無意識的去消耗中央倉庫的帶寬(中央倉庫有大量的構件,其索引文件也很大)。這里我們需要將其設置為True,然後點擊Save。在Nexus下載的中央倉庫索引文件之後,我們就可以在本地搜索中央倉庫的所有構件。下圖展示了我們剛才所涉及的配置:


添加一個代理倉庫
這里我們再舉一個例子,我們想要代理Sonatype的公共倉庫,其地址為:http://repository.sonatype.org/content/groups/public/。步驟如下,在Repositories面板的上方,點擊Add,然後選擇Proxy Repository,在下方的配置部分,我們填寫如下的信息:Repository ID - sonatype;Repository Name - Sonatype Repository;Remote Storage Location - http://repository.sonatype.org/content/groups/public/。其餘的保持默認值,需要注意的是Repository Policy,我們不想代理snapshot構件,原因前面已經描述。然後點擊Save。配置頁面如下:


管理本地Maven倉庫
Nexus預定義了3個本地倉庫,分別為Releases,Snapshots,和3rd Party。這三個倉庫都有各自明確的目的。Releases用於部署我們自己的release構件,Snapshots用於部署我們自己的snapshot構件,而3rd Party用於部署第三方構件,有些構件如Oracle的JDBC驅動,我們不能從公共倉庫下載到,我們就需要將其部署到自己的倉庫中。
當然你也可以創建自己的本地倉庫,步驟和創建代理倉庫類似,點擊Repository面板上方的Add按鈕,然後選擇Hosted Repository,然後在下方的配置面板中輸入id和name,注意這里我們不再需要填寫遠程倉庫地址,Repository Type則為不可修改的hosted,而關於Repository Policy,你可以根據自己的需要選擇Release或者Snapshot。


管理Maven倉庫組
Nexus中倉庫組的概念是Maven沒有的,在Maven看來,不管你是hosted也好,proxy也好,或者group也好,對我都是一樣的,我只管根據groupId,artifactId,version等信息向你要構件。為了方便Maven的配置,Nexus能夠將多個倉庫,hosted或者proxy合並成一個group,這樣,Maven只需要依賴於一個group,便能使用所有該group包含的倉庫的內容。
Nexus預定義了「Public Repositories」和「Public Snapshot Repositories」兩個倉庫組,前者默認合並所有預定義的Release倉庫,後者默認合並所有預定義的Snapshot倉庫。我們在本文前面的部分創建了一個名為「Sonatype Repository」的倉庫,現在將其合並到「Public Repositories」中。
點擊倉庫列表中的「Public Repositories」,然後選擇下方的"Configuration" Tab,在配置面板中,將右邊「Avaiable Repositories」中的「Sonatype Repository」拖拽到左邊的「Ordered Group Repository」中,如圖:

創建倉庫組和創建proxy及hosted倉庫類似,這里不再贅述。需要注意的是format欄位需要填寫「maven2」,添加你感興趣的倉庫即可。

6、maven必須要從遠程服務端下載依賴包嗎?

如果項目成功來編譯過則相關jar包會從中自心maven庫下載到本地maven庫,第二次編譯時,如果沒有更改pom文件的依賴關系則不會再次從中心maven庫下載jar包。<dependency<groupIdorg.springframework</groupId<artifactIdspring-jdbc</artifactId

7、如何利用maven實現在打包的同時將包拷貝到多台遠程伺服器上

這種事情感覺你需要一個jenkins來做,全自動打包部署,支持一次打包多機器部署。

8、如何將一個本地的maven項目放到遠程伺服器上運行。謝謝

無法實現的,maven項目可以再eclipse下運行,如果需要放到遠程伺服器上,需要達成war包,然後在運行。

9、maven是怎麼判斷包在本地倉庫和遠程倉庫哪個是新的

maven對構件的更新判斷基本上是兩種,一種是穩定版本,一種是maven特有的SNAPSHOT版本。

穩定版本很好判斷,直接根據maven構件的坐標體系就能夠獲得。先從本地倉庫中找,如果本地倉庫沒有,就從pom.xml和setting.xml配置的遠程倉庫來找。

SNAPSHOT版本的判斷比較麻煩,基本步驟如下:

假設我在2014年08月22日09時40分52秒在我自己的電腦上使用 「mvn install」 構建了「com.mycompany.demo:test:1.0-SNAPSHOT」。

那麼Maven會在本地倉庫目錄「~/.m2/com/mycompany/demo/test/1.0-SNAPSHOT/」下生成文件「maven-metadata-local.xml」,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.mycompany.demo</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<localCopy>true</localCopy>
</snapshot>
<lastUpdated>20140822084052</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-SNAPSHOT</value>
<updated>20140822084052</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-SNAPSHOT</value>
<updated>20140822084052</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>

十點鍾的時候,其他同事更新了com.mycompany.demo:test:1.0-SNAPSHOT的內容,並通過 "mvn deploy" 發布到了公司的Maven伺服器上。

公司Maven伺服器上產生了文件:

test-1.0-20140822.100021-1.jar
test-1.0-20140822.100021-1.pom

並更新了maven-metadata.xml,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.mycompany.demo</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20140822.100021</timestamp>
<buildNumber>34</buildNumber>
</snapshot>
<lastUpdated>20140822100021</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20140822.100021-1</value>
<updated>20140822100021</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-20140822.100021-1</value>
<updated>20130407081828</updated>
</snapshotVersion>
</versioning>
</metadata>

在這期間我的電腦上沒有發生過任何關於test的構建。

某一天,我需要構建一個依賴於test的項目,於是我運行了mvn package來打包。

這個時候,maven做了什麼呢(背景:我通過配置鏡像,使我本地Maven的任何資源都是從公司的Maven伺服器下載的)?

Step1:從公司的Maven伺服器上下載maven-metadata.xml,重命名為「maven-metadata-<RepositoryID>.xml」,並保存到本地倉庫相應目錄。

Step2:比較maven-metadata-local.xml與maven-metadata-<RepositoryID>.xml中的lastUpdated時間戳的值。

如果maven-metadata-local.xml中的時間戳比較大,則終止。
如果maven-metadata-<RepositoryID>.xml中的時間戳較大,則從公司Maven伺服器上下載最新版本。即:testu-1.0.1-20130407.081828-34.jar。這個過程分兩步:(1)下載test-1.0-20140822.100021-1.jar到本地Maven倉庫。(2)將test-1.0-20140822.100021-1.jar復制一份,覆蓋掉原先的test-1.0-SNAPSHOT.jar。也就是說,如果Maven從遠程倉庫下載了最新的SNAPSHOT發布包的話,那麼最新的待時間戳的包和xxx-SNAPSHOT包是完全一樣的。

10、maven伺服器搭建全過程

網上挺多的,給你搜了一個http://www.tuicool.com/articles/7Zneii你可以看看 能不能成功

與maven遠程伺服器相關的知識