要在资产中添加或替换工件,首先应通过调用 RAMAsset.getArtifactsRoot() 来获取工件根,这将返回 RAMFolderArtifact,它代表资产内所有工件的顶级容器。通过使用 RAMFolderArtifact.addArtifact(Artifact) 或 RAMFolderArtifact.addArtifact(String path, Artifact),可将 RAMFolderArtifact、LocalFileArtifact、LocalFolderArtifact、LocalArchiveFolderArtifact 和 RAMURLArtifact 添加至工件根(或任何其他 RAMFolder 工件)。
//Get the artifact root of the new asset
RAMFolderArtifact root = (RAMFolderArtifact)newAsset.getArtifactsRoot();
// Create an artifact from a single file
File file = new File("D:\\mydocs\\readme.txt");
LocalFileArtifact fileArtifact = new LocalFileArtifact(file);
fileArtifact.setName("readme.txt");
root.addArtifact(fileArtifact);
// Create folder artifact to include all the files in the folder
File folder = new File("D;\\mydocs\\lib");
LocalFolderArtifact folderArtifact = new LocalFolderArtifact(folder);
root.addArtifact(folderArtifact);
// Create URL artifacts
RAMURLArtifact ibmLink = new RAMURLArtifact("http://www.example.com");
ibmLink.setName("IBM");
root.addArtifact("links", ibmLink);
session.put(newAsset, new NullProgressMonitor());