How to organize the folder structure in build definition
![](http://jazz.net/_images/myphoto/4f7a761ac07e263505716b9cb2cb5c4d.jpg)
I have multiple components in one stream. To build, I need to get source code in certain way.
The source code is like below
Component_A
A_dir1
A_dir1_dir1
A_dir1_dir2
A_dir2
Component_B
B_dir1
B_dir2
To run the build, I need the code to be loaded as
A_dir1_dir1
B_dir1
B_dir2
I did some research on Component Load Rules, but did not find a good way to resolve this issue. Is it possible?
The source code is like below
Component_A
A_dir1
A_dir1_dir1
A_dir1_dir2
A_dir2
Component_B
B_dir1
B_dir2
To run the build, I need the code to be loaded as
A_dir1_dir1
B_dir1
B_dir2
I did some research on Component Load Rules, but did not find a good way to resolve this issue. Is it possible?
3 answers
![](http://jazz.net/_images/myphoto/4f7a761ac07e263505716b9cb2cb5c4d.jpg)
The problem is:
I have identical top level folder name in both component. So if load from the top level, RTC will complain one component is being overwritten by anther.
This is a legacy system migrated to RTC, it is not easy to reorganize the code structure due to the whole build/release history. So I am looking for a way to compromise the gap at code loading.
Also, I tried to created the load rule in each component.
In the first component, the file contains:
RootFolderName=/modules/thirdparty
The second component, the file contains
RootFolderName=/modules
The third component, the file contains
RootFolderName=/build_system
RootFolderName=/installer
I am getting error message from the build.
2011-11-02 11:08:07 Fetching files to fetch destination "/home/etadev/NightlyBuild/IAM.main" ...
com.ibm.team.build.internal.scm.SourceControlUtility$2: Status WARNING: com.ibm.team.filesystem.client code=2 Loading the directories in the file system would overwrite/remove existing directories. null children=
at com.ibm.team.build.internal.scm.SourceControlUtility.updateFileCopyArea(SourceControlUtility.java:625)
at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:238)
at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:844)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:650)
at java.lang.Thread.run(Thread.java:662)
Contains : 0 /build.xml (requested to be loaded from both component impc-20110930 and packaging-20110930)
Contains : 1 /RTC-build-loader.txt (requested to be loaded from both component packaging-20110930 and impc-20110930)
Contains : 2 /antlib (requested to be loaded from both component packaging-20110930 and packaging-20110930)
Contains : 3 /.jazzignore (requested to be loaded from both component packaging-20110930 and packaging-20110930)
I have identical top level folder name in both component. So if load from the top level, RTC will complain one component is being overwritten by anther.
This is a legacy system migrated to RTC, it is not easy to reorganize the code structure due to the whole build/release history. So I am looking for a way to compromise the gap at code loading.
Also, I tried to created the load rule in each component.
In the first component, the file contains:
RootFolderName=/modules/thirdparty
The second component, the file contains
RootFolderName=/modules
The third component, the file contains
RootFolderName=/build_system
RootFolderName=/installer
I am getting error message from the build.
2011-11-02 11:08:07 Fetching files to fetch destination "/home/etadev/NightlyBuild/IAM.main" ...
com.ibm.team.build.internal.scm.SourceControlUtility$2: Status WARNING: com.ibm.team.filesystem.client code=2 Loading the directories in the file system would overwrite/remove existing directories. null children=
at com.ibm.team.build.internal.scm.SourceControlUtility.updateFileCopyArea(SourceControlUtility.java:625)
at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:238)
at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:844)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:650)
at java.lang.Thread.run(Thread.java:662)
Contains : 0 /build.xml (requested to be loaded from both component impc-20110930 and packaging-20110930)
Contains : 1 /RTC-build-loader.txt (requested to be loaded from both component packaging-20110930 and impc-20110930)
Contains : 2 /antlib (requested to be loaded from both component packaging-20110930 and packaging-20110930)
Contains : 3 /.jazzignore (requested to be loaded from both component packaging-20110930 and packaging-20110930)