[ https://issues.apache.org/jira/browse/NPANDAY-488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lars Corneliussen updated NPANDAY-488: -------------------------------------- Description: MSDeploy is an extensible tool for creating deployment packages, which then can be deployed to IIS (or Windows Services, e.g.) This is also a prerequisite for Azure Web Roles. h2. High-level Requirements - Must support Package creation - Must support full MSDeploy feature set (through -source:manifest?) - Must choose reasonable defaults for file inclusion - Must be configurable from the VS Add-in - Should support XDT transformations - Should support filtering (Maven-Properties) - Should support Parametrization (through -declareParamFile) - Should make it hard to let default connection strings and passwords "leak" into the package h2. Implementation Details - (?) instead of reinventing the wheel, we could utilize maven-assembly-plugin:single with package-type "dir" -- {color:red}or:{color} Syntax should be similar to maven-assembly-plugin; maybe code reuse is possible? -- Externalized descriptors for file-inclusions should be possible (NPanday then provides reasonable defaults) - Package type is named {{msdeploy-package}} with extension {{msdeploy.zip}} (must end with .zip) - XDT should be delegated to MSBuild (partially depends on NPANDAY-486) h2. Flow To test how this could work out, I used default Maven/NPanday tools + registration of {{msdeploy-package}} as {{msdeploy.zip}}. Then, as soon as we know how this should exactly work, we can start creating the needed plugins. *prepare-package* - (/) {{assembly:single}} -> {{target/prepare-package/01-source-raw}} -- includes {{dotnet-library}} dependencies in {{bin}} -- includes *.as?x + config + css + js + graphics - (/) {{exec:exec: msbuild copy-transformed.xml}} -> XDT-Transforms using *.package.config -> {{target/prepare-package/03-transformed}} - (?) (Optional) {{exec:exec -> msdeploy}} - apply parameter configuration -- This would avoid leaking developer default values into the package *package* - (/) {{exec:exec: msdeploy -verb:sync -source:dirPath=target/prepare-package/03-transformed -dest:package=target/$\{artifactId\}.msdeploy.zip}} - (/) {{build-helper:attach}} artifact {{target/$\{artifactId\}.msdeploy.zip}} as {{msdeploy-package}} Build runs locally: {code} [INFO] Installing target\HelloWorld_WebRole.dll to .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.dll [INFO] Installing target\HelloWorld_WebRole.msdeploy.zip to .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.msdeploy.zip {code} was: MSDeploy is an extensible tool for creating deployment packages, which then can be deployed to IIS (or Windows Services, e.g.) This is also a prerequisite for Azure Web Roles. h2. High-level Requirements - Must support Package creation - Must support full MSDeploy feature set (through -source:manifest?) - Must choose reasonable defaults for file inclusion - Must be configurable from the VS Add-in - Should support XDT transformations - Should support filtering (Maven-Properties) - Should support Parametrization (through -declareParamFile) - Should make it hard to let default connection strings and passwords "leak" into the package h2. Implementation Details - (?) instead of reinventing the wheel, we could utilize maven-assembly-plugin:single with package-type "dir" -- {color:red}or:{color} Syntax should be similar to maven-assembly-plugin; maybe code reuse is possible? -- Externalized descriptors for file-inclusions should be possible (NPanday then provides reasonable defaults) - Package type is named {{msdeploy-package}} with extension {{msdeploy.zip}} (must end with .zip) - XDT should be delegated to MSBuild (partially depends on NPANDAY-486) h2. Flow To test how this could work out, I used default Maven/NPanday tools + registration of {{msdeploy-package}} as {{msdeploy.zip}}. Then, as soon as we know how this should exactly work, we can start creating the needed plugins. *prepare-package* - (/) {{assembly:single}} -> {{target/prepare-package/01-source-raw}} -- includes {{dotnet-library}} dependencies in {{bin}} -- includes *.as?x + config + css + js + graphics - (/) {{exec:exec: msbuild copy-transformed.xml}} -> XDT-Transforms using *.package.config -> {{target/prepare-package/03-transformed}} - (?) (Optional) {{exec:exec -> msdeploy}} - apply parameter configuration -- This would avoid leaking developer default values into the package - (/) {{exec:exec: msdeploy -verb:sync -source:dirPath=target/prepare-package/03-transformed -dest:package=target/$\{artifactId\}.msdeploy.zip}} - (/) {{build-helper:attach}} artifact {{target/${artifactId}.msdeploy.zip}} as {{msdeploy-package}} Build runs locally: {code} [INFO] Installing target\HelloWorld_WebRole.dll to .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.dll [INFO] Installing target\HelloWorld_WebRole.msdeploy.zip to .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.msdeploy.zip {code} > MSDeploy Packaging for Web Applications (also Azure Web Roles) > -------------------------------------------------------------- > > Key: NPANDAY-488 > URL: https://issues.apache.org/jira/browse/NPANDAY-488 > Project: NPanday > Issue Type: New Feature > Components: Maven Plugins, Visual Studio Add-in > Affects Versions: 1.4-incubating > Reporter: Lars Corneliussen > Assignee: Lars Corneliussen > > MSDeploy is an extensible tool for creating deployment packages, which then > can be deployed to IIS (or Windows Services, e.g.) > This is also a prerequisite for Azure Web Roles. > h2. High-level Requirements > - Must support Package creation > - Must support full MSDeploy feature set (through -source:manifest?) > - Must choose reasonable defaults for file inclusion > - Must be configurable from the VS Add-in > - Should support XDT transformations > - Should support filtering (Maven-Properties) > - Should support Parametrization (through -declareParamFile) > - Should make it hard to let default connection strings and passwords "leak" > into the package > h2. Implementation Details > - (?) instead of reinventing the wheel, we could utilize > maven-assembly-plugin:single with package-type "dir" > -- {color:red}or:{color} Syntax should be similar to maven-assembly-plugin; > maybe code reuse is possible? > -- Externalized descriptors for file-inclusions should be possible (NPanday > then provides reasonable defaults) > - Package type is named {{msdeploy-package}} with extension {{msdeploy.zip}} > (must end with .zip) > - XDT should be delegated to MSBuild (partially depends on NPANDAY-486) > h2. Flow > To test how this could work out, I used default Maven/NPanday tools + > registration of {{msdeploy-package}} as {{msdeploy.zip}}. Then, as soon as we > know how this should exactly work, we can start creating the needed plugins. > *prepare-package* > - (/) {{assembly:single}} -> {{target/prepare-package/01-source-raw}} > -- includes {{dotnet-library}} dependencies in {{bin}} > -- includes *.as?x + config + css + js + graphics > - (/) {{exec:exec: msbuild copy-transformed.xml}} -> XDT-Transforms using > *.package.config -> {{target/prepare-package/03-transformed}} > - (?) (Optional) {{exec:exec -> msdeploy}} - apply parameter configuration > -- This would avoid leaking developer default values into the package > > *package* > - (/) {{exec:exec: msdeploy -verb:sync > -source:dirPath=target/prepare-package/03-transformed > -dest:package=target/$\{artifactId\}.msdeploy.zip}} > - (/) {{build-helper:attach}} artifact > {{target/$\{artifactId\}.msdeploy.zip}} as {{msdeploy-package}} > Build runs locally: > {code} > [INFO] Installing target\HelloWorld_WebRole.dll to > .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.dll > [INFO] Installing target\HelloWorld_WebRole.msdeploy.zip to > .m2\...\HelloWorld_WebRole\1.0.0-SNAPSHOT\HelloWorld_WebRole-1.0.0-SNAPSHOT.msdeploy.zip > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira