blob: 125c5e7df2428f7067d25c77430248b499a11361 [file] [log] [blame]
------
Importing Projects
------
------
26 Feb 2009
------
Importing Projects
This section provides procedures on importing a Visual Studio project using Generate Solution's POM Information... feature.
This feature will generate <<<pom.xml>>> files from an existing Visual Studio solution file. The generated <<<pom.xml>>>
file will contain the latest versions of the artifact dependencies used for the project.
<<Note>>: ASP.NET MVC should be installed to get the proper behavior when importing projects especially those projects
with unsupported project types. (Refer to {{{../installation/index.html} Pre-requisites}} section.)
[[1]] Right click on the project and select the Generate Solution's POM Information...\
.
[../images/import.jpg]
[[2]] In the pop-up screen, Browse to the directory location of the parent solution file to use. Group Id is generated by default
with the format of <<<[company_id].[solution_name]>>>.\
.
[../images/import_screen.jpg] Importing parent solution file
[[3]] Click Generate POMs.
Underscores and spaces in artifact's groupId are automatically deleted when added to the project's <<<pom.xml>>>.
The table below shows the conversion of certain values of groupIds.
*--------------------+--------------------+
| <<Artifact Group Id>> | <<Converted Group Id>> |
*--------------------+--------------------+
|The.Project |The.Project |
*--------------------+--------------------+
|the.project |the.project |
*--------------------+--------------------+
|the project |TheProject |
*--------------------+--------------------+
|the_project |TheProject |
*--------------------+--------------------+
[[4]] From the Project Units Tests window, select the test modules to be used for the project and click OK.\
.
[../images/unit_test.jpg] Project unit tests list
<<<pom.xml>>> files will be generated for all the projects that are included in the solution file: the parent project and its sub-projects,
if there are any.
<<Note>>: The Units Tests window is not displayed when importing unsupported project types. Hence, an unsupported project type warning is displayed.
For multi-module projects with supported and/or unsupported project types, the supported projects are included in the parent pom while
for the unsupported project types, these are not included in the parent pom, and a warning is displayed.
For projects with web references, the <<<pom.xml>>> generated will contain <<<maven-wsdl-plugin>>> configuration similar to the following:
+------+
<plugin>
<groupId>npanday.plugin</groupId>
<artifactId>maven-wsdl-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>wsdl</goal>
</goals>
</execution>
</executions>
<configuration>
<webreferences>
<webreference>
<namespace>AnotherWebService</namespace>
<path>Web References/AnotherWebService/AnotherWS.wsdl</path>
<output>Web References/AnotherWebService/</output>
</webreference>
</webreferences>
</configuration>
</plugin>
+------+
The wsdl goal is the one responsible for building and creating webservice proxy classes. And, all the web references used in the project
are listed inside the <<< \<webreferences\> >>> tag. For more instructions on adding, renaming, and deleting web references,
refer to {{{references.html} Web References}} section of this document.
[]
* Importing Projects with Resource File
If the project you are importing includes a resource file, the <<<maven-resgen>>> plugin is added to <<<pom.xml>>> during import.
In the plugin's configuration, you can find the list of resource (<<<resx>>>) files with corresponding names.
By default, <<<RootNamespace>>> is the assembly name and <<<RootNamespace.Filename>>> is the filename of the <<<resx>>> files.
To ensure that the plugin works, the following are required:
* The classname and the filename of the item that contains the resx files must have the same name. Example:
<<<"public class frmMaestroName" = frmMaestroName.resx = frmMaestroName.cs>>>
<<Note>>: Changing the codefile(.cs/.vb) automatically updates the resource(resx) file. In some instances, however, this does not hold true.
* The namespace of the project should be equal to the DefaultNamespace of the project assembly. To check the default name,
* Right-click on the project and select Properties. This displays a project property window.
* Select the Application tab.
* In the DefaultNamespace field, you will find <<<RootNamespace>>>.
[]
[]
Once the above requirements are met, the importer automatically does the work and there is no need to edit <<<pom.xml>>>.
Removing the configuration part of the <<<maven-resgen>>> plugin allows the plugin to locate all the resx files and compile them
as <<<ArtifactId.Filename>>>. If you set the namespace as the artifactId, you do not need to list all the resx files in the <<<pom.xml>>>.
<<Note>>: This feature does not support cultured esx files such as <<<eu-US>>>, <<<it>>>, <<<jp>>>, <<<de>>>, <<<eu-UK>>>, and even custom culture.