版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章入門本所講述的內(nèi)(buildfile)的基本結(jié)構(gòu),并學(xué)習(xí)如何調(diào)用這個(gè)工具。逐步完成為一個(gè)簡單Java項(xiàng)目編寫生成文件的步驟,然后Ant的其他一些有用功能,包括文件系統(tǒng)操作和模式匹配。最后編寫一個(gè)擴(kuò)展Ant功能的自己的Java類來結(jié)束本。在學(xué)習(xí)本的過,同時(shí)展示如何從命令行以及從其他開放源代碼EclipseIDE運(yùn)行AntAntAntAntEclipseAnt,因?yàn)镋clipse已經(jīng)包括了它。如果還沒有Eclipse,您可以從EEclipse。誰應(yīng)該學(xué)習(xí)本如果您正在編寫Java代碼卻還沒有使用Ant,那么本就是為您準(zhǔn)備的。不管您當(dāng)前是否在使如果已經(jīng)在使用Ant,那么您仍然可能在本中發(fā)現(xiàn)一些有趣的東西。或許您會(huì)發(fā)現(xiàn)一些預(yù)料之外或無法完全理解的Ant行為;本將會(huì)幫助您?;蛘撸苍S您熟悉Ant的基礎(chǔ),但是還想知道諸如將生成文件起來、使用CVS知識(shí)庫或編寫自定義任務(wù)等高級(jí);本將會(huì)介紹所有這些。Ant主要是設(shè)計(jì)用于生成Java項(xiàng)目的,但這并不是它唯一的用途。許多人發(fā)現(xiàn)它對(duì)其他任務(wù)也很有幫助。比如以跨平臺(tái)的方式執(zhí)行文件系統(tǒng)操作。此外,還有許多可用的第Ant任務(wù),而編寫自定義的Ant任務(wù)也是相對(duì)簡單的,因此很容易針對(duì)特定的應(yīng)用程序定制Ant。關(guān)于作MattChapman1996是英國Hursley的IBMCentreforJavaTechnology的咨詢軟件工程師。他過去七年來一直致力于Java技術(shù),包括Java虛擬機(jī)實(shí)現(xiàn)和各類平臺(tái)、用戶界面工具包Swing和AWT,以及近來為Eclipse平臺(tái)所編寫的工具。Matt擁有計(jì)算機(jī)科學(xué)方面的,并且還是一名Sun認(rèn)證的Java程序員。可通過m 第二章Ant簡本節(jié)將概述Ant的功能和優(yōu)勢(shì),并討論它的歷史概況和日漸提高的普及性。然后我們通過一個(gè)AntApacheAntJavaJamesDuncanDavidson工具的名稱是anotherneattool(另一個(gè)整潔的工具)的首字母縮寫。了。C或C++中的傳統(tǒng)項(xiàng)目經(jīng)常使用make工具來做這件事情,其中生成任務(wù)是通過調(diào)用s命Ant與make類似,它也定義生成文件之間的依賴關(guān)系;然而,與使用特定于平臺(tái)的s命令來實(shí)現(xiàn)生成過程所不同的是,它使用跨平臺(tái)的Java類。使用Ant,您能夠編寫單個(gè)生成文件,這個(gè)Java(AntJava);這就是Ant最大的優(yōu)勢(shì)。其余內(nèi)容的學(xué)習(xí)之后,會(huì)欣賞Ant的這些優(yōu)勢(shì)。Ant簡AntTomcat,TomcatJavaServletJavaServerPages(JSP)實(shí)現(xiàn)中使用的servlet容器。Tomcat代碼基被捐贈(zèng)給了Apache軟件;在那里它又成了ApacheJakarta項(xiàng)目的組成部分,該項(xiàng)目致力于為Java平臺(tái)產(chǎn)生開放源代碼的服務(wù)器端解決方了一個(gè)Jakarta子項(xiàng)目,其第一個(gè)獨(dú)立版本于2000年7月發(fā)布。從那以后,Ant的普及性已經(jīng)不斷地提高。它贏得了無數(shù)的行業(yè)大獎(jiǎng),并成為用于生成開放源代碼Java200211AntApache(1.6)betaJDK1.22.0計(jì)劃之中,它將涉及一次重大的體系結(jié)構(gòu)重新設(shè)計(jì)。Ant2.0將以改進(jìn)的一致性和增強(qiáng)的功能為特色,同時(shí)仍然保持Ant的簡單性、易于理解性和可擴(kuò)展性等目標(biāo)。Ant生成文件剖Ant沒有定義它自己的自定義語法;相反,它的生成文件是用XML編寫的。存在一組Ant能夠理解的預(yù)定義XML元素,而且就像您將在下一節(jié)中看到的一樣,還可以定義新的元素來擴(kuò)展Ant的projecttarget(target)是生成過已定義的一個(gè)步驟,它執(zhí)行任意數(shù)量的操作,比如編譯一組源文件。這些操作本身是由其他任務(wù)執(zhí)行的,在后面看到這一點(diǎn)。然后這些任務(wù)將根據(jù)需要被分組到各個(gè)targettargettarget頂級(jí)project元素需要包含一個(gè)default屬性,如果在Ant被調(diào)用時(shí)沒有指定目標(biāo),這個(gè)屬性將<?xml<project<target注意這是一個(gè)結(jié)構(gòu)良好的XML文檔,其中一個(gè)XML指定了所使用的XML的版本(這不是當(dāng)前的Ant所必需的,但是這樣做是一個(gè)好習(xí)慣),而且每個(gè)元素都正確地關(guān)閉了。打開和關(guān)閉一個(gè)元素也是可以做到的。因此,與其像上面那樣對(duì)target元素使用單獨(dú)的起始和結(jié)束,<target添加描述:<?xml<projectdefault="init"name="ProjectAsimpleprojectintroducingtheuseofdescriptivetagsinAntbuild<!--XMLcommentscanalsobeused--<targetname="init"description="InitializeArgon<!--performinitializationstepshere--屬<propertyname="metal"<propertyname="metal-database"${user.home}。除了這些屬性之外,Ant還定義了它自己的一小組屬性,包括${ant.version},Ant${basedir},這個(gè)屬性是項(xiàng)目的絕對(duì)路徑(由包含生成文件的projectbasedir)屬性經(jīng)常用于文件系統(tǒng)上的文件或,但是對(duì)于使用不同路徑分隔符(例如,/與\)的平臺(tái)來說,這樣可能在不同導(dǎo)致問題。Ant的location屬性專門設(shè)計(jì)用于以平臺(tái)無關(guān)的方式包含文件系統(tǒng)路徑。您會(huì)像下面這樣使用location來代替value:<propertyname="database-file"location它被認(rèn)為是相對(duì)于項(xiàng)目的基。我們同樣可以容易地寫為下面這樣:<propertyname="database-file"這個(gè)的兩個(gè)版本都會(huì)在不同的平臺(tái)具有相同的行為。如果可移植性是必需的,唯一要避免的內(nèi)定義依賴關(guān)系(JavaArchiveFile,JAR)。這其中許多步驟都具有清楚定義的順序——例如,在編譯器從源代碼生成類文件之前,您不能打包類文件。與順序指定target所不同的是,Ant采用一種更靈活的方法來定義依賴關(guān)系,就像make和類似的生成工具所做的那樣。每個(gè)目標(biāo)的定義依據(jù)的是在targetdepends<target<targetname="preprocess"<targetname="compile"<targetname="package"這種方法允許您執(zhí)行項(xiàng)目任何階段的生成過程;Ant會(huì)首先執(zhí)行已定義的先決階段。在上面的例子Antcompileinit和preprocessinitAntpreprocesstarget,發(fā)現(xiàn)它依賴init目標(biāo);由于已經(jīng)執(zhí)行了后者,Ant不會(huì)再次執(zhí)行它,因而開始執(zhí)行preprocess目標(biāo)。最后可以執(zhí)行compile任務(wù)本身。注意目標(biāo)出現(xiàn)在生成文件中的順序并不重要:執(zhí)行順序是由depends屬性唯一確定的。第三章運(yùn)行簡ApacheAntAntUNIX或Linuxs提示符或者Windows命令提示符調(diào)用,生成文件則使用您自己選擇的文本編IDEAntIDE麻煩地離開IDE來執(zhí)行命令行操作就能調(diào)用Ant生成任務(wù)。開放源代碼的Eclipse平臺(tái)提供的Ant支持。(為了最充分地利用下面這些小節(jié)講述的內(nèi)容,您至少應(yīng)該地熟悉Eclipse。)從命令行從命令提示符調(diào)用Ant可以簡單得只需鍵入單獨(dú)的ant。如果您這樣做,Ant將使用默認(rèn)的生成文件;該生成文件中指定的默認(rèn)目標(biāo)就是Ant嘗試要生成的目標(biāo)。還可以指定許多命令行選項(xiàng),后面跟著任意數(shù)量的生成目標(biāo),Ant將按順序生成這其中的每個(gè)目標(biāo),并在此過解決所有依賴關(guān)系。Buildfile:[mkdir]Createddir:E:\tutorials\ant\example\build[mkdir]Createddir:E:\tutorials\ant\example\dist[javac]Compiling8sourcefilesto[jar]Buildingjar:BUILDTotaltime:2命令行選項(xiàng)就像make工具默認(rèn)情況下尋找一個(gè)名為makefile的生成文件一樣,Ant尋找一個(gè)名為build.xmlAntbuildfile<file>參數(shù)(-f<file>是其簡寫形式)。方式開始的生成過程是非常有用的。例如,為了將name屬性設(shè)置為某個(gè)特定的值,您會(huì)使用一個(gè)-這個(gè)功能可用于覆蓋生成文件中的初始屬性設(shè)置。正如前面過的,屬性的值一經(jīng)設(shè)置就不能改IDEAntIDEIDE的支持。受支持的環(huán)境列表包括JEdit和Jext編輯器、BorlandJBuilder、InliJIDEA、JavaDevelopmentEnvironmentforEmacs(JDEE)、NetBeansIDE、Eclipse以及WebSphere?StudioApplicationDeveloper。請(qǐng)參閱參考資料以了解關(guān)于Ant的廣泛IDE支持的信息。在本節(jié)的其余部分,探討開放源代碼的Eclipse環(huán)境所包括的Ant支持。EclipseAnt的支開放源代碼的Eclipse項(xiàng)目提供了對(duì)Ant的大量支持。這些支持的是Eclipse的Ant編輯列表,其中包含<property>,以及對(duì)該任務(wù)的簡要說明。有一個(gè)Ant視圖,它允許根據(jù)許多不同的Ant文件生成目標(biāo)。Eclipse內(nèi)運(yùn)Ant生成這些文件會(huì)提供一個(gè)RunAnt...菜單選項(xiàng),選擇這個(gè)菜單選項(xiàng)將打開一個(gè)類似如下的框:認(rèn)目標(biāo)之后,請(qǐng)按RunAnt。EclipseConsole視圖,如下圖所示。錯(cuò)誤將Eclipse中的文默認(rèn)情況下,Eclipse僅對(duì)名為build.xml的文件使用Ant編輯器,不過可以容易地配置該編輯再選擇FileAssociations參數(shù)設(shè)置頁面。然后為預(yù)期的文件名添加一種新的文件類型。例如,可以為名為mybuild.xml的所有文件添加一種新的文件類型。如果想對(duì)具有.xml后綴的所有文件(特殊文件名除外,比如plugin.xml,它在Eclipse中覆蓋通配符指定)做同樣的事情,您甚至*.xmlAnt第四章生成一個(gè)簡JAVA項(xiàng)簡JavaJAR文件的Ant任務(wù)。編譯源代碼其他Java相關(guān)任務(wù)就毫不奇怪了。下面是編譯Java代碼的任務(wù)的編寫方式:<javac這個(gè)尋找src中以.java為擴(kuò)展名的所有文件,并對(duì)它們調(diào)用javac編譯器,從而在相同的中生成類文件。當(dāng)然,將類文件放在一個(gè)單獨(dú)的結(jié)構(gòu)中通常會(huì)更清晰;可以通過添加destdir屬性來讓Ant做到這點(diǎn)。其他有用的屬性包括:classpathjavacclasspathjavac任務(wù)的一個(gè)重要特點(diǎn)在于,它僅編譯那些它認(rèn)為需要編譯的源文件。如果某個(gè)類文件已經(jīng)存的輸出顯示了實(shí)際被編譯的源文件的數(shù)目。編寫一個(gè)clean目標(biāo)來從目標(biāo) 件是個(gè)很好的習(xí)慣。如果想要確保所有源文件都已編譯,就可以使用這個(gè)任務(wù)。這種行為刻畫了Ant的許多任務(wù)的特點(diǎn):如果某個(gè)任務(wù)能夠確定所請(qǐng)求的操作不需要執(zhí)行,那么該操作就會(huì)被跳過。像Ant,javacJavaAntjavac非常有利,因?yàn)樗ǔU{(diào)用Ant運(yùn)行所在的相同Java虛擬機(jī)(JVM)中的編譯器類。在每次需要編譯Java代碼時(shí),其他生成工具通常需要運(yùn)行一個(gè)新的javac進(jìn)程,從而需要一個(gè)新的JVM實(shí)例。但是在使用AntJVMAnt必需的編譯任務(wù)(JAR)。這是一種高效得多的資源使用方式,編譯器選項(xiàng)置為true,比如像下面這樣:<javacsrcdir="src"<javacsrcdir="src"fork="true"executable="d:\sdk141\bin\javac" 甚至可以將Ant配置為使用某種不同的編譯器。受支持的編譯器包括開放源代碼的Jikes編譯器和來自GNU編譯器集(GNUCompilerCollection,GCC)的GCI編譯器。(請(qǐng)參閱參考資料以了解關(guān)于這兩種編譯器的信息。)可以通過兩種方式指定這些編譯器:可以設(shè)置pilerJAR文在編譯JavaJARzip件。每個(gè)JAR文件都包含一個(gè)文件,它可以指定該JAR文件的屬性。Antjar<jardestfile="package.jar"這將創(chuàng)建一個(gè)名為package.jar的JAR文件,并把classes中的所有文件添加到其中(JAR文件能夠包含任意類型的文件,而不只是類文件)。此處沒有指定文件,因此Ant將提供一個(gè) 地創(chuàng)建文件和JAR文件。例如<jardestfile="package.jar"<attributename="Built-By"<attributename="Main-class"時(shí)間戳生成個(gè)信息合并到JAR或zip文件的文件名中。init<tstamp2003年1217<jardestfile="package.jar"20031217JAR 的方式格式化該字符串。所有這些都是使用一個(gè)嵌套的format元素來完成的,如下所示:<formatproperty="OFFSET_TIME"java.text.SimpleDateFormat綜前面幾小節(jié)為我們提供了生成簡單Java項(xiàng)目所需的足夠知識(shí)。下面將把這些代碼片斷組合成一個(gè)完整的生成文件,它將編譯src 下的所有源代碼,將結(jié)果類文件放在build 所有類文件打包到dist 含一個(gè)或多個(gè)Java源代碼文件的src ——這個(gè) 可以包含從簡單的“World”程序到來自某個(gè)現(xiàn)有項(xiàng)目的大量源文件的任何內(nèi)容。如果需要向Javaclasspath添加JAR文件或其他任何內(nèi)容,以便成功地編譯源代碼,您只需在javac任務(wù)中為其添加一個(gè)classpath屬性。<?xml<projectdefault="dist"name="Project<description>AsimpleJava<propertyname="srcDir"<propertyname="buildDir"<propertyname="distDir"<target<mkdir<mkdir<targetname="compile"<javacsrcdir="${srcDir}"<targetname="dist"<attributename="Built-By"<attributename="Main-Class"<target<delete<deleteBuildfile:[mkdir]Createddir:E:\tutorial\javaexample\build[mkdir]Createddir:E:\tutorial\javaexample\dist[javac]Compiling10sourcefilesto[jar]Buildingjar:E:\tutorial\javaexample\dist\package- [jar]Buildingjar:E:\tutorial\javaexample\dist\package-src- BUILDTotaltime:5夠通過一個(gè)簡單令java-jarpackage-.jar來直接運(yùn)行。我們還創(chuàng)建了一個(gè)JAR文第五章文件系統(tǒng)簡AntJava當(dāng)然很少像我們的例子那樣簡單。在下面幾節(jié)中,Ant的許多附加功能中的一部分,以在本節(jié)中,如何執(zhí)行常見文件操作,比如創(chuàng)建和解壓縮文件。Ant的優(yōu)秀特性之一創(chuàng)建和刪除 非常類似于具有相同名稱的Windows和UNIX/Linux命令。<mkdir首先要注意/被用作 分隔符,這是UNIX和Linux的慣例。您可能認(rèn)為這不是很平臺(tái)無關(guān)的,但是Ant知道如何處理它,并針對(duì)它運(yùn)行所在的平臺(tái)做恰當(dāng)?shù)氖虑?,這與我們面定義基于位置的屬性時(shí)所看到的方式相同。我們能夠同樣容易地使用\,而不管平臺(tái)是什么——Ant能夠處理mkdir任務(wù)的另一個(gè)有用特性是它的如下能力:在父 設(shè)想archive 存在,但是metals 不存在。如果使用底層平臺(tái)的mkdir命令,您需要首先顯式地創(chuàng)建metals ,然后第二次調(diào)用mkdir命令來創(chuàng)建zinc 。但是Ant任務(wù)比這更加智能,它能夠創(chuàng)建這兩個(gè) 已經(jīng)存在,mkdir任務(wù)不會(huì) <delete 。使用file屬性而不是dir屬性可以指定和移動(dòng)文件及<copyfile="src/Test.java"<movefile="src/Test.java" <copyfile="src/Test.java"<movefile="src/Test.java"創(chuàng)建和解ziptarzipAnt<zipdestfile="output.zip"tarGZipBZip<gzipsrc="output.tar"<unzipsrc="output.tar.gz"配的所有現(xiàn)有文件。相關(guān)的任務(wù)名稱是untar、unjar、gunzip和bunzip2。替換文件中的標(biāo)記在本節(jié)的最后一個(gè)文件系統(tǒng)操作是replace任務(wù),它執(zhí)行文件中的查找和替換操作。<replacefile="input.txt"token="old"第六章其它有用的任務(wù)和簡在自定義的任務(wù)之前,我們首先介紹一些還沒遇到過的有用功能。Ant標(biāo)準(zhǔn)地附帶了大量的功大地增強(qiáng)了我們已看到過的一些任務(wù)的功能;將生成任務(wù)起來以及與CVS知識(shí)庫協(xié)同工作,是模式匹面文件系統(tǒng)任務(wù)時(shí),我們僅使用了單獨(dú)地命名的文件和。然而,一次對(duì)一組文件執(zhí)行javaDOSUNIX,Ant的模式不過就是*.java。 執(zhí)行模式匹配。例如,模式src*/*.java將匹配帶src前綴的任何 Java文件。還有另一種模式結(jié)構(gòu):**,它匹配任意數(shù)量的 。例如,模式**/*.java將匹配當(dāng) 結(jié)構(gòu)下的所有Java文件。<copyfile="src/Test.java"<copy<fileset<includefileset默認(rèn)情況下包含指定src 下的所有文件,因此為了僅選擇Java文件,我們對(duì)模式使用一個(gè)include元素。類似地,我們可以對(duì)另一個(gè)模式添加一個(gè)exclude元素,從而潛在地排除include指定的匹配項(xiàng)。甚至可以指定多個(gè)include和exclude元素;這樣將得到一組文件和 們包含include模式的所有匹配項(xiàng)的并集,但排除了exclude模式的所有匹配項(xiàng)。注意還有一個(gè)通常很有用的文件集特性,但是對(duì)于沒有它的人來說,這個(gè)特性偶爾會(huì)產(chǎn)生混的相匹配的條目,以及以~和,可以將文件集的defaultexcludes屬性設(shè)置為no。使用選擇器includeexcludeincludeexclude對(duì)Ant可用的選擇器的列表:size:這個(gè)選擇器用于根據(jù)文件的字節(jié)大小選擇文件(除非使用units屬性來指定了不同的單位)。when(less、moreequal),valuecontains:只有包含給定文本字符串(text)的文件才匹配這個(gè)選擇器。默認(rèn)情況下,查找操作是大小寫敏感的;添加casesensitive="no"可以改變默認(rèn)設(shè)置。negate="yes"時(shí)的exclude元素相同。present:從當(dāng)前結(jié)構(gòu)中選擇如下文件:它們與指定的targetdir中的文件具有相同的名稱和相對(duì)結(jié)構(gòu)。于targetdir位置中的對(duì)應(yīng)文件來說,最近已修改過的那些文件。date:這個(gè)選擇器基于其最后修改日期選擇文件。whenbefore、after還是equal,datetime屬性指定與之作比較的日期和時(shí)間,這個(gè)日期和時(shí)間具有給MM/DD/YYYYHH:MMAM_or_PMWindows2間量可以使用granularity屬性來更改(以毫秒為單位來指定)。 結(jié)構(gòu)層次數(shù)目。min和/或max屬性用于選擇具有 or、not、nonemajority。下面是一個(gè)文件集的例子,它僅選擇那些大于512字節(jié)并且包含字符串“o”的文件。<fileset<contains <sizevalue="512"將生成文件起antfileAnt<antantfile="sub-inheritAll="falseproperty使將inheritAll設(shè)置為false,這些屬性也仍然適用生成文件。這個(gè)功能很適合用于給<?xml<project<target<echo<?xml<project<target<antantfile="sub.xml"target="showMessage"<propertyname="message" ofromparentBuildfile:[echo] ofromparentBUILDTotaltime:0CVSCVS是concurrentversionssystem(并發(fā)版本控制系統(tǒng))的縮寫。它是一個(gè)源代碼控制系統(tǒng),CVS命令包括在大多數(shù)Linux套件中;它也以多種形式對(duì)Windows可用——例如作為寶貴的Cygwin環(huán)境的一部分。(請(qǐng)參閱參考資料以了解關(guān)于Cygwin的信息。)<?xml<projectname="CVSExtract"default="extract"<propertyname="cvsRoot"<target<cvscvsRoot="${cvsRoot}"希望提取的模塊以及放置提取文件的目的地。提取是CVS任務(wù)的默認(rèn)操作;其他操作可通過使用command屬性來指定。CVS的信息。第七章使用自定義任務(wù)來擴(kuò)展簡正如我們從前述幾節(jié)中所看到的,Ant非常強(qiáng)大,具有涵蓋廣泛功能集的許多任務(wù)。它還有許Ant-Contrib目的一部分來提供的其他任務(wù);最后,ApacheAnt主頁上還列出了外部可用的任務(wù)。面對(duì)Ant提供的所有這些任務(wù),您似乎再也不需要其他任務(wù)了,但是AntJavaJava)Antexec任務(wù)外部地調(diào)用該工具(這樣將引入依賴關(guān)系,并使得生成文件在不同更難于使用),創(chuàng)建自定義的任務(wù)importorg.apache.tools.ant.Task;publicclassFileSorterextendsTask//Themethodexecutingthepublicvoidexecute()throwsBuildException}將拋出這個(gè)異常以便向Ant故障。別叫做file和tofile。Ant上屬性的名稱,因此在這個(gè)例子中,我們需要名為setFile()setTofileAnt方法 的絕對(duì)路徑。Ant能夠?qū)ζ渌愋头ǎ珹nt將使用更明確的那一個(gè)方法,因此文件類型將優(yōu)先于字符串類型。//Thesetterforthe"file"attributepublicvoidsetFile(Filefile){}//Thesetterforthe"tofile"attributepublicvoidsetTofile(Filetofile){}實(shí)現(xiàn)自定義的任務(wù)importjava.io.*;importorg.apache.tools.ant.Task;*AsimpleexampletasktosortapublicclassFileSorterextends{privateFilefile,//Themethodexecutingthepublicvoidexecute()throws{System.out.println("Sortingfile="+file);try{BufferedReaderfromnewBufferedReader(newFileReader(file));BufferedWriterto=newBufferedWriter(newFileWriter(tofile));ListallLines=newArrayList();//readintheinputfileStringline=from.readLine();while(line!=null){line=from.readLine();}//sortthelist//writeoutthesortedfor(ListIteratori=allLines.listIterator();i.hasNext();{Strings=(String)i.next();to.write(s);to.newLine();}}catch(FileNotFoundException{thrownew}catch(IOExcepti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年綠色施工安全生產(chǎn)文明工地綜合服務(wù)合同3篇
- 二零二五版養(yǎng)老機(jī)構(gòu)勞動(dòng)合同管理規(guī)范及養(yǎng)老服務(wù)協(xié)議3篇
- 2025年度香菇食品企業(yè)信用評(píng)級(jí)與評(píng)估服務(wù)合同2篇
- 二零二五年櫥柜安裝及廚房設(shè)備更新合同2篇
- 年度老年人保健品競爭策略分析報(bào)告
- 二零二四年外債轉(zhuǎn)貸業(yè)務(wù)借款合同標(biāo)準(zhǔn)3篇
- 二零二五版商業(yè)地產(chǎn)項(xiàng)目股權(quán)借款抵押合同3篇
- 2024版新材料研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 二零二五版體育賽事贊助合同協(xié)議范本下載3篇
- 二零二五版企業(yè)安全生產(chǎn)與環(huán)境保護(hù)培訓(xùn)合同2篇
- 細(xì)胞庫建設(shè)與標(biāo)準(zhǔn)制定-洞察分析
- 2024年國家公務(wù)員錄用考試公共基礎(chǔ)知識(shí)復(fù)習(xí)題庫2500題及答案
- DB3309T 98-2023 登步黃金瓜生產(chǎn)技術(shù)規(guī)程
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫標(biāo)準(zhǔn)卷
- DBJ41-T 108-2011 鋼絲網(wǎng)架水泥膨脹珍珠巖夾芯板隔墻應(yīng)用技術(shù)規(guī)程
- 2025年學(xué)長引領(lǐng)的讀書會(huì)定期活動(dòng)合同
- 表內(nèi)乘除法口算l練習(xí)題1200道a4打印
- 《EICC培訓(xùn)講義》課件
- 2025年四川省政府直屬事業(yè)單位招聘管理單位筆試遴選500模擬題附帶答案詳解
- 2024年物業(yè)公司服務(wù)質(zhì)量保證合同條款
- 文言文閱讀之理解實(shí)詞含義(講義)-2025年中考語文專項(xiàng)復(fù)習(xí)
評(píng)論
0/150
提交評(píng)論